【发布时间】:2018-02-02 05:36:47
【问题描述】:
我正在使用 r 来分析一些长格式的数据。我有一列是一个分组变量,其中包含参与者 ID,另一个变量包含他们的性别。
例如
ID SEX
1 M
1 M
2 F
2 F
2 M
我想检查是否有任何 ID 的性别编码不一致,例如上面的 ID=2。有没有办法做到这一点?我一直在玩 dplyr 和 group_by 函数,但我不知所措。任何帮助将不胜感激。
就输出而言,我可能想要在 SEX 列中具有不同值的所有唯一 ID 值的向量。
【问题讨论】:
-
我想我想要一个包含所有在 SEX 列中具有不同值的唯一 ID 值的向量。这有意义吗?
-
所以你的意思是你想识别那些编码不是 (M-1 & F-2) 的 id。就像最后一行?
-
不,我想识别 ID 的值,如 ID==2(第 3 到 5 行),其中 SEX 的值不一致(例如,它们并非全部 = M 或它们不全部 = F)。
-
这将为您提供唯一 ID:
df %>% group_by(ID) %>% filter(n_distinct(SEX) >1) %>% distinct(ID)。我相信还有其他多种方法可以做到这一点。
标签: r data-cleaning