【发布时间】:2019-12-14 22:16:22
【问题描述】:
我正在重做一些旧的大学论文,将其从 Stata 转换为 R 以学习 R,并试图找到一种方法来获取一个国家变量,并创建一个新变量,其中包含 OECD 成员或非会员。
我尝试使用 if-else 语句从 dplyr 进行变异,但它似乎不起作用,我尝试的所有谷歌搜索似乎只是显示重新调整现有因素等。
例如(country_name 包含世界上所有国家/地区的名称,为便于阅读而缩写):
df <- data.frame(country_name = c("Australia", "Austria", "Belgium", "Algeria", "Bahrain", "Comoros"))
df <- df %>% mutate(OECD = ifelse(country_name = c("Australia", "Austria", "Belgium"), "OECD", "Non-OECD")
我原以为包含“Australia”、“Austria”、“Belgium”的行会得到 OECD 的因子水平,而“Algeria”、“Bahrain”、“Comoros”会得到 Non-OECD。
Ps,这是我的第二个问题,非常感谢任何关于如何改进我的问题的提示!
已解决:正如下面接受的答案中所指出的,我应该使用 %in% 运算符。非常感谢!
【问题讨论】:
-
你需要
%in%做df %>% mutate(OECD = ifelse(country_name %in% c("Australia", "Austria", "Belgium"), "OECD", "Non-OECD"))或者直接df$OECD <- ifelse(df$country_name %in% c("Australia", "Austria", "Belgium"), "OECD", "Non-OECD")
标签: r