r - 在整个数据集而不是单个列上使用 ifelse 语句
问题描述
我正在尝试在整个数据框而不是单个列上使用 ifelse。
如果我的数据是这样的;
Var1 Var2 Var3
1 1 1
3 2 0
0 1 2
3 3 1
5 0 3
要更改单个列,我会这样做
Var1_Binary<-ifelse(data$Var1 == 0, 0, 1)
Var2_Binary<-ifelse(data$Var2 == 0, 0, 1)
Var3_Binary<-ifesle(data$Var3 == 0, 0, 1)
但我想对整个数据集执行 ifelse - 我有很多变量,对每个变量执行 ifelse 会很耗时。
所以,最终的数据集看起来像这样
Var1 Var2 Var3
1 1 1
1 1 0
0 1 1
1 1 1
1 0 1
非常感谢你!
解决方案
与lapply
:
data.frame(lapply(df, function(x) as.integer(x != 0)))
数据:
df <- data.frame(
var1 = c(1,3,0,3,5),
var2 = c(1,2,1,4,0),
var3 = c(1,0,2,1,3)
)
推荐阅读
- node.js - HTTPS 证书 - 如何在我的架构上设置
- javascript - 帮助在 JavaScript 的 forEach 循环中使用 typeOf
- java - 如何从 ApplicationContext 中获取泛型类?
- angular-cli - 物化模态黑色背景
- formatting - PowerBI:在组合堆叠条形图和折线图上格式化总计
- git - git 2.18 win64,签出分支时出现奇怪错误,仅在我的电脑中
- c# - 比较两个文件中的项目以确定哪些元素已更改
- google-chrome - 远程调试 - 转发 https?
- laravel-5 - 当发送更新请求控制器在 Laravel 5.6 中接收到空数组
- python - 逐行打印字典数据的函数