这是一个后续问题这一个.我想检查的是数据框中的任何列是否包含所有行的相同值(数字或字符串).例如,
sample <- data.frame(col1=c(1, 1, 1), col2=c("a", "a", "a"), col3=c(12, 15, 22))
Run Code Online (Sandbox Code Playgroud)
目的是检查数据框中的每一列,以查看哪一列没有所有行的相同条目.这该怎么做?特别是,既有数字也有字符串.
我的预期输出将是包含具有不相同条目的列号的向量.
我们可以使用applycolumnwise(margin = 2)并计算列中的唯一值,并选择具有不等于1的唯一值数的列.
which(apply(sample, 2, function(x) length(unique(x))) != 1)
#col3
# 3
Run Code Online (Sandbox Code Playgroud)
使用sapply或lapply调用也可以完成相同的代码
which(sapply(sample, function(x) length(unique(x))) != 1)
#col3
# 3
Run Code Online (Sandbox Code Playgroud)
一个dplyr版本可能是
library(dplyr)
sample %>%
summarise_all(funs(n_distinct(.))) %>%
select_if(. != 1)
# col3
#1 3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1066 次 |
| 最近记录: |