Добавление нового столбца в dataframe на основе нескольких условий двух других столбцов в R - PullRequest
0 голосов
/ 06 октября 2019

В кадре данных у меня есть два столбца A и B. Значения в каждом столбце могут быть либо 1, либо NA.
Я хочу добавить третий столбец с именем C, чтобы:

 - If A == NA AND B == NA, then C = "None"
 - If A == 1 AND B == NA, then C = "A" 
 - If A == NA AND B == 1, then C = "B"
 - if A == 1 AND B == 1, then C = "Both"

Ответы [ 2 ]

0 голосов
/ 06 октября 2019

Мы можем использовать ifelse

library(dplyr)
df %>%
    mutate(C = ifelse(is.na(A) & is.na(B), "None",
                   ifelse(A== 1 & is.na(B), "A",
                   ifelse(B==1 & is.na(A), "B",
                   "Both"))))
0 голосов
/ 06 октября 2019

Просто переведите ваши условия в case_when заявления

library(dplyr)

df %>%
  mutate(C = case_when(is.na(A) & is.na(B) ~ "None", 
                       A == 1 & is.na(B) ~ "A",
                       B == 1 & is.na(A) ~ "B", 
                       TRUE ~ "Both"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...