在 R 中,如何根据向量中的值对数据帧的行进行子集

我想根据向量中包含的因子值生成一个子集。我已经包含了一个简单示例的工作代码。但是,如果我有很多列(> 10)并且我不想使用“|”列出每一列怎么办 (或),有没有更好的方法来做到这一点?我下面的示例使用字母,但我正在处理因素(人名)。

set.seed(37)
df <- data.frame(id1=sample(LETTERS, 20),id2=sample(LETTERS, 20))
L <- c("A","B","E")
subset(df, id1 %in% L | id2 %in% L )
   id1 id2
2    B   V
10   C   B
11   F   A
14   A   F
19   E   S
西多姆

您可以使用Reduce来构造OR条件:

subset(df, Reduce("|", lapply(df, `%in%`, L)))

#   id1 id2
#2    B   V
#10   C   B
#11   F   A
#14   A   F
#19   E   S

或用于rowSums检查每行是否有任何字母匹配:

subset(df, rowSums(sapply(df, `%in%`, L)) != 0)

#   id1 id2
#2    B   V
#10   C   B
#11   F   A
#14   A   F
#19   E   S

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在R中,如何根据值所属的bin对数据帧的每一行进行分类?

根据R中的某些条件对数据帧进行子集

根据r中id中的值对数据进行子集

如何基于R中的条件对数据帧进行子集

R - 如何根据条件向量对存储在列表中的所有数据帧进行子集

如何根据R中两列不匹配的值对数据框进行子集化?

如何根据下一次出现在R中对数据帧进行子集化?

如何使用R根据数据框中单个列的最小值对特定列中的行进行子集

在R中:根据另一个表中的数据对数据帧中的行进行重新排序

如何根据R中向量的值转换数据帧的列?

根据R中的目标向量对数据帧组进行排序

通过R中的列内的唯一值对数据帧进行子集

在 R 中,如何根据函数内部的值列表正确地对数据框进行子集化?

如何使用占位符在 r 中对数据帧进行子集化

如何像R中的SAS那样按列名对数据帧进行子集化?

如何使用选择输入在 r Shiny 中对数据帧进行子集化?

如何根据R中列名中的数字条件对数据进行子集化?

如何基于基础R中的另一个数据帧对数据帧进行子集

如何根据R中的多个变量对数据框进行子集化

如何根据多个联合条件在 R 中对数据框进行子集化

如何使用基于R中最近位置的坐标对数据框中的行进行子集化

如何使用R中的向量选择数据帧的子集

使用R对数据框中的行进行子集和重复

如何基于R中的条件组合对数据进行子集

基于使用 R 的条件对数据帧中的行进行洗牌

基于多个字符串的部分匹配,在R数据帧中对行进行子集

根据R中的向量值提取数据帧的值

如何基于R中的列对数据帧进行分类?

在R中对数据帧进行分组