r - 如果所有值都是特定值,则删除一列
问题描述
如果所有单元格都带有No Items
.
df1 <- data.frame(cat = c(1,1,1,"No items",2,2,2,"No items"),
item1 = c(0,0,1,0,1,1,"No items",0),
item2 = c("No items","No items","No items","No items","No items","No items","No items","No items"),
item3 = c(0,0,1,"No items",1,0,0,0))
> df1
cat item1 item2 item3
1 1 0 No items 0
2 1 0 No items 0
3 1 1 No items 1
4 No items 0 No items No items
5 2 1 No items 1
6 2 1 No items 0
7 2 No items No items 0
8 No items 0 No items 0
在这种情况下,我需要删除item2
列。所需的输出将是:
> df1
cat item1 item3
1 1 0 0
2 1 0 0
3 1 1 1
4 No items 0 No items
5 2 1 1
6 2 1 0
7 2 No items 0
8 No items 0 0
有任何想法吗?
谢谢!
解决方案
一种base R
方法,
df1[,colSums(df1 == "No items") != nrow(df1)]
给,
cat item1 item3
1 1 0 0
2 1 0 0
3 1 1 1
4 No items 0 No items
5 2 1 1
6 2 1 0
7 2 No items 0
8 No items 0 0
推荐阅读
- python - 在 Python 中解码一列 Base64 字符串
- reactjs - Material UI 调色板为主题添加了额外的颜色,并以与 Primary/Secondary 相同的方式使用它
- apache - 如何在 docker 容器中的正确位置安装 apache 模块
- google-apps-script - 发送每日电子邮件触发器
- android - 当我按下操作栏中的向上按钮时保存活动状态
- python - 混合占位符、executemany 和表名
- apache-camel - 来自 ftp 消费者的异常后聚合:FatalFallbackErrorHandler
- java - 我只接收来自对象 Groovy 的部分输出
- visual-studio-code - Xdebug VSCode 忽略断点
- android - 如何在java中比较两个kotlin.jvm.functions