【发布时间】:2014-02-27 03:34:21
【问题描述】:
我需要在数据框中添加一列,并根据现有列的某些条件来填充新添加列的值
示例数据框:
DeptID Name Age Active
2 Aira 23 0
2 Ben 25 1
2 Cat 32 1
3 Dan 28 1
期望的输出:如果 DeptID = 2 then (如果 Active = 1 then Rate = 0 else Rate = 1) else Rate is empty
DeptID Name Age Active Rate
2 Aira 23 0 0
2 Ben 25 1 1
2 Cat 32 1 1
3 Dan 28 1
我尝试了下面的代码,但总是得到 0,请帮助。
data = cbind(data, Rate=sapply(data$DeptID, function(x) {
ifelse(as.character(x) %in% c(2), ifelse(as.character(data$Active) %in% c(1),1,0),0)
}))
【问题讨论】:
-
您想要的输出似乎与所述条件不一致。你说如果
Active == 1,Rate == 0,这不是你想要的输出显示的。我的答案给出了条件建议的输出,而不是提供的输出。修复起来很简单,但我想我会先请你澄清你想要什么。