我想知道是否可以创建基于字符的if语句。这样的是
这不是我想了解的真实代码
if {taskStaffName != 'Carl Goss' add 80
else{ if taskStaffName = 'Carl Goss' add 40}
否则{如果taskStaffName ='Ama Fh'加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
答案 0 :(得分:1)
是的,我们可以在这里尝试使用ifelse
:
df$Budget <- ifelse(df$taskStaffName == "Carl Goss", 40, 80)
假设您确实想在预算列中添加一个值,然后使用:
df$Budget <- df$Budget + ifelse(df$taskStaffName == "Carl Goss", 40, 80)
要处理两个以上的用例,我们可以尝试使用case_when
包中的dplyr
:
df$Budget <- case_when(
df$taskStaffName == "Carl Goss" ~ 40,
df$taskStaffName == "Ama Fh" ~ 44,
TRUE ~ 80
)
在基数R中执行此操作的方法是仅嵌套对ifelse
的调用,但这很快变得不可读。