Заполните столбец на основе критериев в R - PullRequest
0 голосов
/ 24 января 2020

Я пытаюсь заполнить столбец названиями мест (скажем, названиями городов, таких как Сан-Франциско, Сан-Хосе ...) на основе условий нескольких столбцов, содержащих посещаемость определенных событий в программировании на языке R.

Например, мои данные (называемые df) будут выглядеть так:

Name     question1        question2        question3      question4    CityName
A           Y                Y                N              N   
B           N                N                N              N
C           Y                N                Y              Y

Я хочу заполнить столбец с названием города при условии, что если человек ответит Y на вопрос 1 или 2, название города будет "Сан-Франциско", и если человек ответит N на оба, название города будет "Сан-Хосе".

Итак, конечный результат будет таким:

Name     question1        question2        question3      question4     CityName
A           Y                Y                N              N         San Francisco
B           N                N                N              N         San Jose
C           Y                N                Y              Y         San Francisco

Я не знаю, как заполнить столбец такими символами, как "Сан-Франциско", когда есть условие (в данном случае условия), как в приведенном ниже коде, который заполнит столбец CityName TRUE или FALSE.

df <-mutate[df, CityName = (question1 == "Y")]

Я ценю вашу помощь!

1 Ответ

0 голосов
/ 24 января 2020

Вы можете использовать case_when для проверки нескольких условий и соответственно назначить выход. Это будет легко расширить, если у вас будет больше условий для проверки позже.

library(dplyr)

df %>%
  mutate(City_Name = case_when(
     question1 == "Y" | question2 == "Y" ~ "San Francisco", 
     question1 == "N" & question2 == "N" ~ "San Jose",
     TRUE ~ NA_character_))


#  Name question1 question2 question3 question4     City_Name
#1    A         Y         Y         N         N San Francisco
#2    B         N         N         N         N      San Jose
#3    C         Y         N         Y         Y San Francisco
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...