Я пытаюсь извлечь строки условно, просматривая значение в столбцах, и намереваюсь добавить новый столбец с двоичным значением в зависимости от того, появилось ли значение в этой строке или нет. Для меня идея проста, я использовал dplyr функции, чтобы сделать это, но у меня возникает следующая ошибка:
Ошибка в as.logical (test): не может привести тип 'замыкание' к вектору типа 'логический'
воспроизводимые данные
Вот воспроизводимые данные на публикуемых c gist .
По сути, мне нужно проверить значение в двух разных столбцах, а затем присвоить двоичное значение новому добавленному столбцу. Вот моя быстрая попытка:
f= read.csv("mydf.csv", header = TRUE)
df_new <- f %>% filter(str_detect(lelvel_care, "Intensive"))
df_new %>% mutate(new_col=ifelse(. %>% select(setting, "ICU"),1,NA)) %>% write.csv
, так как я много времени работал над python, использование r для выполнения таких манипуляций освежает мою разум. Для меня, я мог бы сделать приведенный выше код правильным и эффективным с помощью утилит dplyr
, но не уверен, как это исправить и заставить его работать. Какие-нибудь мысли? Кто-нибудь может указать мне, как это исправить? Есть ли лучший способ сделать это?
желаемый вывод
Я хочу присвоить двоичное значение (1, NA), если столбец level_care
имеет значение Intensive
и setting
имеет ICU
, тогда экспорт привел df как csv
. как заставить мой код работать? какие-нибудь быстрые мысли?