我有一个中等大小的数据框,就像我在下面制作的一样(尽管有几列),我想在其中查找是否有任何“ id”具有不同的“ letter” 我想有一个简单的方法可以做到这一点,也许是用提迪尔?
df<-data.frame("id"=c(1, 1, 2, 3, 3, 3, 4, 4, 5, 6, 6), "letter"=c("f", "f",
"r", "r", "k", "k", "k", "k", "r", "f", "r"))
编辑:我正在尝试查找具有多个字母的“ id”。即在此df id 3和6中。我对哪个“字母”(尽管显示出来还不错)不太感兴趣,而对“ id” s
感兴趣答案 0 :(得分:0)
不确定所需的输出,但是您可以检查一下每个letter
对应多少id
:
library(dplyr)
df %>%
group_by(id) %>%
summarise(n_letters = n_distinct(letter))
A tibble: 6 x 2
id n_letters
<dbl> <int>
1 1 1
2 2 1
3 3 2
4 4 1
5 5 1
6 6 2
如果您只想要id
的向量,且只有一个字母:
df %>%
group_by(id) %>%
summarise(n_letters = n_distinct(letter)) %>%
filter(n_letters == 1) %>%
pull(id)
[1] 1 2 4 5
或者如果您想要{f {1}}的df且包含超过1个字母:
id