4Manuals

  • PDF Cloud HOME

查找数据框之间的不匹配 Download

    RSQLite:如何增加列数和参数数? 使用plotstyle =“ ggplot”时,为什么在qqcomp函数中没有显示任何点? 如何在python中使用sql查询生成文本文件? 如何使用python读取数据框单元格中的全文数据? 如何重用df.groupby()的结果。在另一个数据框中填充NaN是什么意思? 如何测量时间序列功耗模式的变化性? 具有不存在点的四分之一圈ggplot-s 使用奇怪的结构构建列表(?) 从R中的数据帧读取值 如何排除少数列并替换大数据中的负值?

我有一个称为ref的参考数据帧。我想将ref中的元素与一组数据帧进行比较,然后将不匹配项插入列表中。值为0、1和NA。下面的样本数据集:

ref <- structure(list(ID = structure(c(2L, 1L, 3L), .Label = c("bar", 
"foo", "hello"), class = "factor"), a = c(1, 0, 0), b = c(1, 
1, 0), c = c(1, 1, 1)), class = "data.frame", row.names = c(NA, 
-3L))

df1 <- structure(list(ID = structure(2:1, .Label = c("bar", "foo"), class = "factor"), 
    b = c(0, 0), f = c(NA, 0), a = c(1, 1)), class = "data.frame", row.names = c(NA, 
-2L))

参考:

     ID a b c
1   foo 1 1 1
2   bar 0 1 1
3 hello 0 0 1

df1

   ID b f  a
1 foo 0 NA 1
2 bar 0 0  1

数据帧未排序。引用ID均包含在内。目的是比较具有相同ID和colname的元素,并根据colname列出不匹配项。 df1的所需列表为:

df1_list

$a
[1] "bar"

$b
[1] "foo" "bar"

主要问题是列名不是全部相同,也不是按顺序排列。如果我要对许多数据帧中的每一个执行此操作,则将变得相当复杂。我也无法通过连接函数解决这个问题。

1 个答案:

答案 0 :(得分:1)

这是使用基数R的一种方法:

cols <- intersect(names(df1[-1]), names(ref[-1]))
rows <- match(df1$ID, ref$ID)
apply(df1[cols] != ref[rows, cols], 2, function(x) as.character(df1$ID[x]))

#$b
#[1] "foo" "bar"

#$a
#[1] "bar"



Similar searches
    Kubernetes,更改Kops集群的服务器 ASIO io_service在第二次run()调用时不处理后处理程序 添加php sql的未知问题添加文章 如何发送Shift键并保持按住直到在Python Selenium中从外部命令 Angular 8和Sails在套接字io请求中出现错误