[英]R ifelse statement for creating new column based on observations found in others
[英]Create new column with ifelse statement based on combination with other columns in R
我有一個包含urban_rural 和宗教兩列的數據集。 我想根據這兩列之間的兩個特定交互創建一個新列。 即,urban_not_religious 和urban_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))
分配"Yes"
后,您可以將"No"
分配給不是"Urban"
任何內容。
library(dplyr)
dataset %>%
mutate(urban_not_reg = case_when(urban_rural=="Urban" & religious == "Not religious" ~ "Yes",
urban_rural != "Urban" ~ "No",
TRUE ~ NA_character_))
這是否有效:
> dataset %>% mutate(urban_not_reg = case_when(urban_rural == 'Urban' & religious == 'Not religious' ~ 'Yes',
+ (urban_rural == "Rural" & religious=="Religious") |
+ (urban_rural == "Refugee camp" & religious=="Somewhat religious") |
+ (urban_rural == "Rural" & religious=="Somewhat religious") |
+ (urban_rural == "Refugee camp" & religious=="Religious") ~ 'No',
+ TRUE ~ NA_character_))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.