我试图根据包含出席R编程中某些事件的多个列的条件,用地名填充列(例如,旧金山,圣何塞等城市名称)。
例如,我的数据(称为df)将如下所示:
Name question1 question2 question3 question4 CityName
A Y Y N N
B N N N N
C Y N Y Y
我想填充一个城市名称列,条件是如果该人在问题1或2上回答Y,则城市名称为“旧金山”,而如果该人在两个问题上均回答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
我不知道如何在存在以下代码的条件(在这种情况下为条件)下,用“ San Francisco”之类的字符填充列,该条件将用TRUE或FALSE填充CityName列。
df <-mutate[df, CityName = (question1 == "Y")]
感谢您的帮助!
答案 0 :(得分:0)
您可以使用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