我在R方面不是很好,而且我很难想出如何连续地做一些事情.
这是我的起始数据集:
df <- data.frame (Name = c("Alex", "Alex", "Alex", "Alex", "Alex", "Alex", "Alex", "Beth", "Beth", "Clark"),
ID = c(1, 1, 2, 2, 3, 3, 3, 4, 4, 5),
Month = c(4, 7, 4, 6, 7, 8, 8, 1, 1, 6),
Day = c(5, 5, 5, 5, 8, 9, 9, 2, 2, 7),
Grade = c("Pass", "Fail", "Pass", "Fail", "Pass", "Pass", "Fail", "Pass", "Fail", "Pass"))
我try 做的是,对于每个唯一的Name
,获取前ID
行,然后过滤剩下的行,以获得Name
和ID
的组合.
所以,我想要得到的是:
Name ID Month Day Grade
Alex 1 4 5 Pass
Alex 1 7 5 Fail
Beth 4 1 2 Fail
Beth 4 1 2 Pass
Clark 5 6 7 Fail
我try 使用GROUP_BY,提取名称和ID,然后过滤,但在%中使用%时不能过滤多个条件.这是我的代码:
df2 <- df %>%
group_by(Name) %>%
group_modify(~ head(.x,1L)) %>%
pull(Name,ID)
df3 <- df %>%
filter(Name %in% df2, ID %in% df2)