【发布时间】:2020-10-18 12:25:41
【问题描述】:
我有一个包含 Urban_rural 和宗教两列的数据集。我想根据这两列之间的两个特定交互创建一个新列。即urban_not_religious 和rural_religious。
在对这个网站进行了一些研究之后,我设法根据两列与 ifelse 语句的组合创建了一个新列,但仅适用于同时满足这两个条件的受访者。对于所有其他人,我尝试编写另一个 ifelse 语句,但它只返回 NA。我可以为所有具有 NA 的受访者提供“否”的值,但我希望将 NA 与那些具有有效值但不满足条件的受访者分开。因此,那些居住在城市地区且不信教的人选择“是”,所有其他受访者选择“否”,以及 NA。
这是我的数据集示例和我使用的代码:
structure(list(urban_rural = structure(c(1L, 1L, 2L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L,
1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("Urban",
"Rural", "Refugee camp"), class = "factor"), religious = structure(c(2L,
1L, 2L, 2L, 3L, 2L, 2L, 3L, 1L, 3L, 3L, 1L, 3L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 2L, 3L, 2L, 2L, 2L,
3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 2L, 1L, 2L, 2L, 2L, 2L,
1L), .Label = c("Religious", "Somewhat religious", "Not religious"
), class = "factor")), row.names = c(NA, 50L), class = "data.frame")
dataset$urban_not_reg <- ""
dataset <- dataset %>%
mutate(urban_not_reg=ifelse((urban_rural=="Urban")&(religious=="Not religious"),"Yes",NA)) %>%
mutate(urban_not_reg=ifelse((urban_rural=="Rural")&(urban_rural=="Refugee camp")&(religious=="Religious")&(religious=="Somewhat religious"),"No",NA))
【问题讨论】: