r - 用多个变量的值编码一个变量
问题描述
我需要用 4 个先前变量中的值编写一个新变量。如果 col 1:4 的值为 1 或 2,我希望分配新变量以将该值设为 1 或 2。
样本数据。
df1<- (data.frame(ID = c("a", "b", "c", "d", "e"),
var1 = c(1,0 ,2 ,0 ,0 ),
var2 = c(0, 2, 0, 0, 0),
var3 = c(0,0,0,2,2),
var4 = c(0,0,"NA", "NA", "NA")))
我想要的是看起来像这样的东西:
df1<- (data.frame(ID = c("a", "b", "c", "d", "e"),
var1 = c(1,0 ,2 ,0 ,0 ),
var2 = c(0, 2, 0, 0, 0),
var3 = c(0,0,0,2,2),
var4 = c(0,0,"NA", "NA", "NA"),
var5 = c( 1,2,2,2,2)))
新变量 var5 是我想从 var1:var4 中找到的值创建的变量,我知道如何执行ifelse
语句并尝试执行循环失败。
解决方案
如果所有列都是数字,则可以使用rowSums()
. 像这样:
df1<- data.frame(ID = c("a", "b", "c", "d", "e"),
var1 = c(1,0 ,2 ,0 ,0 ),
var2 = c(0, 2, 0, 0, 0),
var3 = c(0,0,0,2,2),
var4 = c(0,0,NA, NA, NA))
df2$var5 <- rowSums(df1[,2:5], na.rm = TRUE)
df2
# ID var1 var2 var3 var4 var5
# 1 a 1 0 0 0 1
# 2 b 0 2 0 0 2
# 3 c 2 0 0 NA 2
# 4 d 0 0 2 NA 2
# 5 e 0 0 2 NA 2
推荐阅读
- google-cloud-dataprep - UNIXTIMEFORMAT 公式问题
- visual-studio - 如何查看 Visual Studio 解决方案中需要包含在项目中的所有“缺失”文件?
- node.js - 我可以在节点 js 中使用 paypal api 列出我过去的交易吗
- python - Python:每 30 秒列出一次文件并避免处理重复项
- tensorflow - Tensorflow 1.15 无法使用 Cuda10.1 检测 gpu
- netsuite - 如何获取特定列表/记录字段的源列表类型?
- html - 选择角度未正确显示值
- sql-server - 如何格式化/清理源数据以导入 SQL Server SSN 和电话号码
- php - PHP SQLSRV 分页函数返回一行
- python - 正则表达式在 Python 中查找 LastnameFirstname 之间没有空格