基于If stations R创建一个新列
我想知道我是否可以创建基于字符的if语句。这就是 这不是一个真正的代码,如果这是可能的话,我正在努力理解基于If stations R创建一个新列,r,function,if-statement,R,Function,If Statement,我想知道我是否可以创建基于字符的if语句。这就是 这不是一个真正的代码,如果这是可能的话,我正在努力理解 if {taskStaffName != 'Carl Goss' add 80 else{ if taskStaffName = 'Carl Goss' add 40} else{if taskStaffName='Ama Fh'add 44} 数据样本: taskStaffName false true 1 Ama Fh 11 0 2 Bar
if {taskStaffName != 'Carl Goss' add 80
else{ if taskStaffName = 'Carl Goss' add 40}
else{if taskStaffName='Ama Fh'add 44}
数据样本:
taskStaffName false true
1 Ama Fh 11 0
2 Bar Mi 14 88
3 Briny Rey 6 0
4 Ben Le 20 65
5 Co Wams 165 398
6 Don Chrensen 7 106
7 Da Cari 0 5
8 Geth by 9 546
9 Hen Vaeghem 34 157
10 Jemy Haran 2 35
11 Joph Le 9 22
12 Carl Goss 69 360
预期结果:
taskStaffName false true Budget
1 Ama Fh 11 0 44
2 Bar Mi 14 88 80
3 Briny Rey 6 0 80
4 Ben Le 20 65 80
5 Co Wams 165 398 80
6 Don Chrensen 7 106 80
7 Da Cari 0 5 80
8 Geth by 9 546 80
9 Hen Vaeghem 34 157 80
10 Jemy Haran 2 35 80
11 Joph Le 9 22 80
12 Carl Goss 69 360 40
是的,我们可以在此处尝试使用
ifelse
:
df$Budget <- ifelse(df$taskStaffName == "Carl Goss", 40, 80)
在base R中实现这一点的方法是只嵌套调用
ifelse
,但这很快就会变得不可读。如果它们是两个不同的Ama Fh 11 0 44、Carl Goss 69 360 40和其他80,你会怎么做,对不起,我刚刚编辑了我的帖子。顺便感谢错误:“Exp$Budget”中意外的“=”对不起,我一直在这样做。您需要使用=
作为相等运算符。请记住,发布到堆栈溢出的大部分代码尚未(有时无法)测试。
df$Budget <- df$Budget + ifelse(df$taskStaffName == "Carl Goss", 40, 80)
df$Budget <- case_when(
df$taskStaffName == "Carl Goss" ~ 40,
df$taskStaffName == "Ama Fh" ~ 44,
TRUE ~ 80
)