删除只有唯一值的列

标签 r

我想删除只有唯一值的列。
首先,我尝试将它用于单个列并且它有效:

data %/% 
  select_if(length(unique(data$policy_id)) > 1)
然后我尝试多列如下:
data %/% 
  select_if(length(unique(data[, c("policy_date", "policy_id"])) > 1)
但它不起作用。由于我缺乏经验,我认为这是一个概念上的错误。
提前致谢

最佳答案

您可以使用 select(where()) .
假设我有一个这样的数据框:

df <- data.frame(A = LETTERS[1:5], B = 1:5, C = 2)

df
#>   A B C
#> 1 A 1 2
#> 2 B 2 2
#> 3 C 3 2
#> 4 D 4 2
#> 5 E 5 2
然后我可以这样做:
df %>% select(where(~ n_distinct(.) > 1))

#>   A B
#> 1 A 1
#> 2 B 2
#> 3 C 3
#> 4 D 4
#> 5 E 5

关于删除只有唯一值的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64555491/

相关文章:

r - 为什么有序向量并不总是根据 R 中的 "is.ordered"排序?

r - 如何从 clusterApply 打印?

r - data.table 中的加权滚动中位数 (r)

r - 将字符串参数作为 dplyr 中的数据框列名称传递给函数

c++ - Rcpp:在不导出 C++ 函数的情况下在 R 中调用 C++ 函数

r - 如何在 grid.newpage() 中进行 grid.arrange()

r - 如何使用JDBC/Hive构建一个运行Shiny应用程序的Dockerfile(需要rJava)?

r - 使用 dplyr 过滤 data.frame 中的完整案例(按案例删除)

r - 为什么 summarize() 中的 cur_data() 会返回 df_slice() 错误?

r - 通过 R 框架中的字符串标签选择特定列