如何选择r中的元素为r中的列?

发布于 2025-01-21 20:44:16 字数 348 浏览 0 评论 0原文

我正在努力选择所有元素全部0的列。这是一个简单的示例:

df <- data.frame(A=c(1,0,1,0),B=c(0,0,0,0),C=c(1,1,0,0),D=c(0,0,0,0))
df
  A B C D
1 1 0 1 0
2 0 0 1 0
3 1 0 0 0
4 0 0 0 0

我想选择B和D列D。我知道dplyr :: Select允许通过colnames选择。但是如何通过其值选择列? select(跨越(所有(),〜.x == 0))。但是() select> select()无法使用

I am struggling to select all columns whose elements are all 0. Here is a simple example:

df <- data.frame(A=c(1,0,1,0),B=c(0,0,0,0),C=c(1,1,0,0),D=c(0,0,0,0))
df
  A B C D
1 1 0 1 0
2 0 0 1 0
3 1 0 0 0
4 0 0 0 0

I want to select Columns B and D. I know the dplyr::selectallows to select by colnames. But how to select columns by their values? Something like select(across(everything(),~.x==0)). But the across() cannot be used in select().

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

北凤男飞 2025-01-28 20:44:16

我们可以在中使用选择选择语句以查找具有0的列。

library(dplyr)

df %>% 
  select(where(~sum(.) == 0))

中使用colsums

df[,colSums(df) == 0]

或者您可以在base r: < 强>输出

  B D
1 0 0
2 0 0
3 0 0
4 0 0

We can use where inside the select statement to find the columns that have a sum of 0.

library(dplyr)

df %>% 
  select(where(~sum(.) == 0))

Or you could use colSums in base R:

df[,colSums(df) == 0]

Output

  B D
1 0 0
2 0 0
3 0 0
4 0 0
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文