从数据框中删除具有相同值的列

use*_*991 7 r unique-values dataframe

我有一个这样的数据框架

1    1    1    K    1    K    K
2    1    2    K    1    K    K
3    8    3    K    1    K    K
4    8    2    K    1    K    K
1    1    1    K    1    K    K
2    1    2    K    1    K    K
Run Code Online (Sandbox Code Playgroud)

我想删除所有具有相同值的列,即K,所以我的结果将是这样的

1    1    1    1    
2    1    2    1   
3    8    3    1  
4    8    2    1  
1    1    1    1 
2    1    2    1  
Run Code Online (Sandbox Code Playgroud)

我尝试迭代列中的迭代,但我什么都没得到.有任何想法吗?提前致谢

Ben*_*ker 4

要选择具有多个值的列(无论其类型如何):

uniquelength <- sapply(d,function(x) length(unique(x)))
d <- subset(d, select=uniquelength>1)
Run Code Online (Sandbox Code Playgroud)

(哎呀,Roman 的问题是对的——这也可能会破坏你的第 5 栏)

也许(编辑:感谢评论!)

isfac <- sapply(d,inherits,"factor")
d <- subset(d,select=!isfac | uniquelength>1)
Run Code Online (Sandbox Code Playgroud)

或者

d <- d[,!isfac | uniquelength>1]
Run Code Online (Sandbox Code Playgroud)