Создайте новый столбец на основе If Statments R - PullRequest
0 голосов
/ 13 ноября 2018

Я хотел бы знать, могу ли я создавать операторы 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 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 голосов
/ 13 ноября 2018

Да, мы можем попробовать использовать 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, но этобыстро становится нечитаемым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...