【发布时间】:2022-08-19 15:37:47
【问题描述】:
这是基于此question。问题说:
有没有办法让我根据列名开始子集数据 有一个特定的字符串?我有一些类似于 ABC_1 的列 ABC_2 ABC_3 和一些像 XYZ _1、XYZ _2、XYZ _3 比方说。
如何仅根据包含上述内容的列对我的 df 进行子集化 部分文本(比如说,ABC 或 XYZ)?我可以使用索引,但是 列在数据中太分散了,变得太难了 编码。
另外,我只想包含这些列中的任何行 它们的值大于 0,因此如果上面 6 列中的任何一列有 1 in 行,它切入我的最终数据框。
使用 dplyr 选择的答案之一多列对于新数据:
df <- df %>% dplyr:: select(grep(\"ABC\", names(df)), grep(\"XYZ\", 名称(df)))
但是,我想要一个类似于上述的 data.table 解决方案。我知道(根据答案之一) data.table 可以做一个条件,但不确定如何做多个:
df[, grep(\"ABC\", names(df)), with = FALSE]
标签: r data.table subset