r - 仅保留数据框中的某些列,前提是它们符合条件
问题描述
我是编程新手,所以请多多包涵。我有一个包含大约 1500 行和 1000 个变量的数据框。我试图保留只有二进制值的列,即“0”或“1”,也允许使用 NA,但丢弃所有其他不符合此条件的列。有没有办法在事先不知道符合条件的列名的情况下做到这一点?
我已经阅读了dplyr filter()
函数以及基本的R子集,但没有一个符合我正在寻找的内容。
解决方案
你可以尝试这样的事情:
df <- data.frame(a=1:5,
b=c(0,1,0,1,0),
c=c(0,1,0,1,NA_real_),
d=c(0,1,0,1,2))
is_binary <- function(x){
all(x %in% c(0,1,NA_real_))
}
df[,sapply(df, is_binary)]
输出:
b c
1 0 0
2 1 1
3 0 0
4 1 1
5 0 NA
推荐阅读
- react-native - 从内部和外部存储中删除图像?
- reactjs - 如何在材质 UI 中使用 withStyles 覆盖引导类
- excel - 索引匹配 与多个条件匹配
- html - 从 HTTP 迁移到 HTTPS
- ms-access - 通过复制现有表的结构创建 Access 表
- javascript - 连续加载localhost:3000
- reactjs - “错误:您试图在一个本应不可变且已被冻结的对象上设置键 `latitude` 的值为 `37.785834`。”
- node.js - 是否有任何功能可以为集合中的所有现有 mongodb 对象添加新属性
- javascript - 如何检查 Cloud Firestore 集合中的所有文档中是否存在字段值?
- java - Spring MVC 从 JSP 中的表单在 @Controller 中创建一个对象