r - 拆分和排列字符串列数据
问题描述
R新手,所以我有点迷茫。我有一个包含各种变量的数据集,包括以下列“drink_daily”:
drink_daily <- c("(ID 3) Cola & (ID 1) Sprite",
"(ID 1) Sprite & (ID 3) Cola",
"(ID 2) water & (ID 3) Cola & (ID 4) Other",
"(ID 3) Cola & (ID 1) Sprite & (ID 2) water")
等等
我需要在数据框中得到这样的结果:
[1] "1" & "3"
[2] "1" & "3"
[3] "2" & "3" & "4"
[4] "1" & "2" & "3"
- a) 我想将所有字符串按字母 (1-4) 顺序排列
- b) 将列中的字符串拆分为 4 个变量
- c) 将文本重新编码为数字 (1->4)
- d) 将 4 列合并为一列
解决方案
您可以从stringr
和purrr
库中获得一些帮助。例如
library(purrr)
stringr::str_match_all(drink_daily, "\\(ID (\\d+)\\)") %>%
map(function(x) x[,2]) %>%
map(as.numeric) %>%
map(sort) %>%
map_chr(paste, collapse=" & ")
# [1] "1 & 3" "1 & 3" "2 & 3 & 4" "1 & 2 & 3"
我们使用str_match_all
提取字符串“(ID #)”中的数字,然后对它们进行排序并将它们粘贴在一起。
推荐阅读
- node.js - 使用 id 更改用户的昵称
- javascript - 选择选项总是在 vue.js 中被预选
- dax - Power BI 中的行级安全性 - 不起作用
- c# - 为 wsHttpBinding 分配自定义绑定配置
- java - BufferedReader.ready() 没有按预期工作
- java - 由于缺少请求而无法发出刻度 0(间隔不支持补充速度比刻度慢的小型下游请求)
- python - Python 允许用户从 Windows 应用程序编辑代码
- nuget - Artifactory 本地 nuget 存储库产生 MethodNotAllowed 错误
- r - R 用更有效的方式替换嵌套循环来遍历 2 个数据帧
- oop - 为什么我的无状态小部件不能正确使用来自提供者的数据?