我有一个大数据帧ncol = 220我想比较列,看它们是否相同,并生成一个易于识别的矩阵。
所以我拥有的是
x y z
1 dog dog cat
2 dog dog dog
3 cat cat cat
我想要什么
x y z
x - True False
y True - False
z False False -
有没有办法在R?
中使用same()来执行此操作答案 0 :(得分:4)
赞美@ Cath的关于List<T>
的评论,这很简单,
stringdist
答案 1 :(得分:3)
可能效率不高但你可以尝试:
seq_col <- seq_len(ncol(df))
sapply(seq_col, function(i) sapply(seq_col, function(j) identical(df[, i], df[, j])))
# [,1] [,2] [,3]
# [1,] TRUE TRUE FALSE
# [2,] TRUE TRUE FALSE
# [3,] FALSE FALSE TRUE
它给你你想要的东西(除了对角线,这里都是TRUE)但是必须有一个包含一个函数的包来创建一个基于字符向量的距离矩阵。也许有stringdist
的东西?