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

标签 r dataframe unique-values

我有一个像这样的数据框

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
我想删除所有具有相同值的列,即 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  
我尝试在 for by 列中迭代,但我什么也没得到。有任何想法吗?

最佳答案

要选择具有多个值的列而不考虑类型:

uniquelength <- sapply(d,function(x) length(unique(x)))
d <- subset(d, select=uniquelength>1)

?

(糟糕,Roman 的问题是对的——这也可能会淘汰你的第 5 列)

也许( 编辑 :感谢评论!)
isfac <- sapply(d,inherits,"factor")
d <- subset(d,select=!isfac | uniquelength>1)

或者
d <- d[,!isfac | uniquelength>1]

关于从数据框中删除具有相同值的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8388417/

相关文章:

google-apps-script - 从一列收集所有唯一值并将它们输出到另一列中..?

java - 从数组中打印唯一值

r - 仅转置 data.frame 中的某些列

r - 尝试从 R 中的基因序列返回指定数量的字符

r - 如何在 R Markdown 中左对齐 latex 方程?

r - 强制 `read_tsv`解压文件

r - 匹配不同数据框中列之间的值

python - 按日期顺序组织数据行 Pandas Python

python - 如何使用 pandas 读取其中项目是引用的文本文件