从数据框中提取列的唯一值

7

我在R中有一个数据框,想知道是否可能检索每列中不在其他列中出现的值。

My dataframe looks like :

sample_1 sample_2 sample_3
   a        a        a       
   c        e        c
   d        f        e
   g        m        j
   m        n        n
   x        u        w
   t        z        z

我希望得到以下结果:
sample_1 sample_2 sample_3
   d        f        j
   g        u        w
   x
   t

感谢您提前回答问题,


请注意,R中的数据框在所有列中都具有相同数量的行,这就是为什么akrun在第二列和第三列中填充了空字符串("")。由于您想捕获不同长度的三个向量,我建议坚持使用list结构(lapply的输出),它更加灵活,即其元素可以具有不同类型和维度。 - talat
1个回答

5
你可以尝试。
lst <- lapply(seq_along(df1), function(i) df1[,i][!df1[,i] %in%
                      unique(unlist(df1[-i]))])
 library(stringi)
 as.data.frame(stri_list2matrix(lst, fill=''))

5
或者类似的代码:lapply(1:ncol(df), function(i) setdiff(df[,i], unlist(df[-i]))) - talat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接