根据 R 中数据帧中另一列的条件过滤数据帧

用户2797174

我想根据条件过滤以下 R 数据框,即如果列“Score”在同一 ID 中没有 A,则删除与该 ID 关联的行。例如,对于 ID 号 2,只有 C 和 B 但没有 A。因此删除 ID 号为 2 的行。

 dat <- structure(list(ID = c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 3L), 
    Score = structure(c(1L, 1L, 2L, 3L, 2L, 2L, 2L, 3L, 3L, 1L
    ), .Label = c("A", "B", "C"), class = "factor"), Info = c(1L, 
    10L, 7L, 8L, 9L, 1L, 7L, 8L, 3L, 2L)), class = "data.frame", row.names = c("1", 
"2", "3", "4", "5", "6", "7", "8", "9", "10"))
dat
   ID Score Info
1   1     A    1
2   1     A   10
3   1     B    7
4   2     C    8
5   2     B    9
6   2     B    1
7   3     B    7
8   3     C    8
9   3     C    3
10  3     A    2

输出如下:

       ID  Score Info
1     1     A    1
2     1     A    10
3     1     B    7
4     3     B    7
5     3     C    8
6     3     C    3
7     3     A    2

任何帮助将非常感激。

弗里克先生

这很容易做到dplyr你可以做

library(dplyr)

dat %>% 
  group_by(ID) %>% 
  filter("A" %in% Score)

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据另一个数据帧在R数据帧中创建变量

根据另一个数据帧中的多个条件过滤数据帧

根据多列在R中组合数据帧行

根据另一列的等级向R中的数据帧添加一列

根据唯一值过滤整个数据帧,并在R中创建一个新列

如何根据R中的条件将数据从一列复制到另一列?

根据时间范围从R中的另一个数据帧更改ID?

如何使用R根据匹配查找数据帧替换数据帧的多个列中的因子水平

根据条件验证R中两个数据帧之间的列中的值

根据R中的条件乘并替换数据帧中的值

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

R:根据数据帧列中的行值删除行

R:折叠行并根据数据帧中的条件更改值

根据R中另一个数据帧中的行为数据帧中的行设置子集

根据R中的另一个数据帧更改单元格

如何根据R中多于1列的条件对数据帧中的行重新排序?

R数据帧:根据另一列中的值更改第一列中的值

根据数据帧中另一列的条件求和的列

根据R中的两个匹配条件,将值从一个数据帧添加到另一个数据帧

R:根据条件(不同大小的数据帧),从另一个数据帧的列中为列分配值

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

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

我想根据同一数据帧中其他列的条件从R数据帧中的列生成名称的8种组合

函数根据R中另一列的数据检索某一列的数据

根据R中另一个数据帧内的列从数据帧中删除变量

如何根据R中的另一个数据帧过滤和子集数据帧

根据来自不同数据帧的另一列,将值更新为当前数据帧中的新列

R根据来自两个数据帧的另一列的条件乘以数据帧的列

根据R中另一个数据帧中给出的条件,用NA替换数据帧中的多个值