我有一个包含多列的数据集,其中包含来自不同学校的信息.我正在标准化所有信息,因此所有学校都显示相同的信息.为此,我试图识别所有列中是否显示了相同的信息,并识别哪些列和行不显示相同的信息.

假设我有以下数据集:

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

在我创建的这个假设的 pyramid 中,我故意在col 2中添加了一个缺失的值,并在col 3中添加了一个唯一的值G.

使用列col 1作为基准,是否有一种智能且优雅的方法可以识别col 2、col 3中缺少的值,以及如何将G识别为列col 3中的唯一值?

快速澄清.如果我们以col 1作为比较基准,则col 2中缺少字母D,col 3中缺少字母E.有什么简单的方法可以得到这个吗?

此外,在col 3中存在一个唯一的值G,该值不包含在col 1中.我也想找到一种方法来指出这一点.

希望这不会令人困惑.如果您需要更多澄清,请告诉我.

推荐答案

也许是这样的?

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"

R相关问答推荐

将第二个图放置在ggplot 2中另一个图的x轴上

如何在x轴下方画一条带有箭头的线?

使用scale_x_continuous复制ggplot 2中的离散x轴

创建重复删除的唯一数据集组合列表

将年度数据插入月度数据

基于多列将值链接到NA

筛选出以特定顺序患病的个体

制作等距离的线串副本

将文件保存到新文件夹时,切换r设置以不必创建目录

如何在R中描绘#符号?

以相同的方式对每个表进行排序

从多个线性回归模型中提取系数

R-按最接近午夜的时间进行筛选

R -如何分配夜间GPS数据(即跨越午夜的数据)相同的开始日期?

如何在使用箭头R包(箭头::OPEN_DATASSET)和dplyr谓词时编写具有整齐计算的函数?

如何移除GGPlot中超出与面相交的任何格网像元

如何使用FormC使简单算术运算得到的数字是正确的?

错误包arrowR:READ_PARQUET/OPEN_DATASET&QOT;无法反序列化SARIFT:TProtocolException:超出大小限制&Quot;

计算来自单独分组的分幅的值的百分位数

如何更改包中函数中的参数?