r - 在 R 中,使用变量名而不是列值来将列转换为二进制
问题描述
我的数据集中有一组分类列,我将它们转换为二进制变量 (1/0)。
其中有很多,目前,我已经调用了列名和值,将其转换为 word 文档,然后在代码中直接使用列值:
binarydata<- rawdata3
my_cols = c(8:38, 48:52, 59:69, 96:118, 120:132, 145:148, 154:170, 223:330)
binarydata[my_cols] <- as.integer(!is.na(binarydata[my_cols]))
有没有办法使用变量名而不是值来做到这一点?
任何帮助表示赞赏,
解决方案
我们可以使用colnames
子集。 colnames
与它相比更通用,names
因为它也可以使用matrix
nm1 <- colnames(binarydata)[my_cols]
binarydata[nm1] <- lapply(binarydata[nm1], function(x) +(!is.na(x)))
此外,使用,我们可以指定范围 ( )dplyr
中的列名:
library(dplyr)
mtcars1 <- mtcars %>%
mutate(across(c(mpg:disp, wt:qsec), ~ +(!is.na(.))))
推荐阅读
- javascript - 创建反应应用程序错误:找不到模块'./locale'
- javascript - 仅在 firebase 函数中为某些用户代理调用云函数
- python - 如何使用硒慢慢滚动到页面的末尾,以便我可以获得动态加载的内容
- javascript - 如何用javascript中的条件替换字符串
- html - 使用 HTML 将单个页面重定向到另一个页面
- reactjs - 状态组件的功能组件
- kubernetes - 大使边缘堆栈主机未生成 ACME 证书
- javascript - 在 REACT 中构建网格视图
- c++ - out_of_bounds: basic_string C++
- c++ - 移动构造函数不是继承也不是默认生成