Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何根据唯一值的数量选择列?_R_Dplyr - Fatal编程技术网

R 如何根据唯一值的数量选择列?

R 如何根据唯一值的数量选择列?,r,dplyr,R,Dplyr,我的回归分析给我带来了麻烦,因为我的一个(或多个)自变量只有一个值。我没有时间检查100多个变量的因子级别数,所以我只想从数据集中排除只有一个值的所有变量 我该怎么做呢 我尝试了df%select\u if(length>1)和df%select\u if(length()>1),但这两种方法似乎都不起作用 编造的数据 df <- data.frame("a" = sample(1:100, 10), "b" = sample(1:100, 10),

我的回归分析给我带来了麻烦,因为我的一个(或多个)自变量只有一个值。我没有时间检查100多个变量的因子级别数,所以我只想从数据集中排除只有一个值的所有变量

我该怎么做呢

我尝试了
df%select\u if(length>1)
df%select\u if(length()>1)
,但这两种方法似乎都不起作用

编造的数据

df <- data.frame("a" = sample(1:100, 10), 
                 "b" = sample(1:100, 10),
                 "c" = rep(42, 10),
                 "d" = sample(LETTERS, 10))

df这是一个
数据表
解决方案

dt[,.SD,.SDcols=dt[,lapply(.SD,uniqueN)]>1]
在Base-R中

df <- df[sapply(sapply(df,unique),length)>=2]

请阅读相关信息以及如何给出建议。这将使其他人更容易帮助您。在良好的旧基础R:
df中,将此标记为答案,因为尽管我理解程度很低,但我可以完全理解代码:)
df <- df %>% select_if(apply(df, 2, not_unique))
df <- df[sapply(sapply(df,unique),length)>=2]
df[sapply(df, function(x) length(unique(x)))>=2]