我有一个串联的字符串,其中包含列名:
col_names = paste(c("Age", "Sex", "City", "Name"), collapse=', ')
col_names
[1] "Age, Sex, City, Name"
我还有一个data frame=df
,它有100个变量。
如何使用col_names
从df
选择字符串(col_names
)中的列?
答案 0 :(得分:1)
我们可以使用scan
获取vector
个名称,使用trimws
删除尾随/前导空格,并使用它来对数据集进行子集化。
df[trimws(scan(text=col_names, sep=",", what=''))]
或另一个选项是str_extract
library(stringr)
df[str_extract_all(col_names, '\\w+')[[1]]]
df <- data.frame(Age= c(5, 3, 25), Sex = c("M", "F",
"M"), Value = 1:3, City= c("Brookings",
"Mumbai", "Paris"), Name = LETTERS[1:3])
答案 1 :(得分:1)
使用strsplit功能有帮助吗?它会通过某种分隔符将您的字符串拆分为字符向量。在这里,我使用函数通过字符串中的变量对数据框进行子集化(由akrun提供)。
df <- data.frame(Age= c(5, 3, 25), Sex = c("M", "F",
"M"), Value = 1:3, City= c("Brookings",
"Mumbai", "Paris"), Name = LETTERS[1:3])
df[,strsplit(col_names, ", ")[[1]]]
Age Sex City Name
1 5 M Brookings A
2 3 F Mumbai B
3 25 M Paris C