在If Statments R中创建一个新列

时间:2018-11-13 06:34:04

标签: r function if-statement

我想知道是否可以创建基于字符的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

1 个答案:

答案 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的调用,但这很快变得不可读。