【发布时间】:2015-06-16 11:11:46
【问题描述】:
我知道如何根据包含一个已定义字符串的列名从大型 data.frame 中选择变量,如:(How do I select variables in an R dataframe whose names contain a particular string?)
但是如何从包含一个字符串或另一个的对象中选择列?
我希望不必拆分和重新组合 df,以便将各列保持其原始顺序。
这是我的示例代码,使用grep,用于获取仅匹配第一个字符串的变量,效果很好:
df[grep("top",names(df),fixed=TRUE)]
grep 不会采用逻辑运算符。那么如何选择列名中带有“base”的第二组列呢?
【问题讨论】:
-
df[grep("top|base", names(df))]? -
grep 不会采用逻辑运算符 -> 实际上它会;或者使用
stringr包中的str_detect,如下所示:df[str_detect(names(df), "top|base")] -
我试过这个,但是它返回一个包含所有行但没有变量的 df 对象。我不认为 grep 像 | 这样的逻辑运算符。
-
哦,我想通了 - 使用参数
fixed=TRUE意味着运算符将不起作用:)