我有一个包含多列的数据集,其中包含来自不同学校的信息。我正在标准化所有信息,因此所有学校都显示相同的信息。为此,我试图确定所有列中是否显示相同的信息,并确定哪些列和行不显示相同的信息。
假设我有以下数据集:
df <- data.frame(col1 = c("A", "B", "C", "D", "E", "F"),
col2 = c("B", "A", "C", "F", "E", NA),
col3 = c("C", "B", "A", "F", "G", "D"))
这给了我以下数据框:
col1 col2 col3
1 A B C
2 B A B
3 C C A
4 D F F
5 E E G
6 F <NA> D
在我创建的这个假设数据框中,我有意在 col2 中添加了缺失值,并在 col3 中添加了唯一值 G。
以 col1 列为基准,是否有一种聪明而优雅的方法可以识别 col2、col3 中缺少哪个值,以及如何将 G 识别为 col3 列中的唯一值?
快速澄清。如果我们以col1为比较基准,col2中缺少字母D,col3中缺少字母E。有没有简单的方法可以得到这个?
此外,在 col3 中,有一个唯一值 G,该值不包含在 col1 中。我也想找到一种方法来解决这个问题。
希望这不会令人困惑。如果您需要更多说明,请告诉我。
也许是这样的?
lapply(df[-1], \(x) {
list(extra = setdiff(x, df$col1), absent = setdiff(df$col1, x))
})
# $col2
# $col2$extra
# [1] NA
#
# $col2$absent
# [1] "D"
#
#
# $col3
# $col3$extra
# [1] "G"
#
# $col3$absent
# [1] "E"