簡體   English   中英

如何在 R 中使用 ifelse 或 dplyr?

[英]How to use a ifelse or dplyr in R?

print(mydata)
Race    Ethnicity
White   Hispanic
White   Non-Hispanic
Black   Unknown
Asian   Non-Hispanic
White   NA
White   Non-Hispanic

我想要一個新專欄。 如果有人是西班牙裔,我希望他們在新專欄中成為西班牙裔,無論種族如何。 但如果他們的種族是非西班牙裔、未知或 NA。 我想參加他們的比賽。

這是我想要的輸出

print(mydata)
Race    Ethnicity       RaceEthnic
White   Hispanic          Hispanic
White   Non-Hispanic      White
Black   Unknown           Black
Asian   Non-Hispanic      Asian
White   NA                White
White   Non-Hispanic      White

我試過這樣的事情,但沒有用

data <- data %>%
  mutate(EthnicRace = ifelse(Ethnicity == "Hispanic" ~ "Hispanic", Race))

你快到了:

data <- data %>%
  mutate(EthnicRace = ifelse(Ethnicity == "Hispanic", "Hispanic", Race))

~用於case_when而不是ifelse (假設 'Ethnicity' 和 'Race' 都是character

library(dplyr)
mydata %>%
    mutate(EthnicRace = case_when(Ethnicity == "Hispanic"~ "Hispanic",
                TRUE ~ Race))
#  Race    Ethnicity EthnicRace
#1 White     Hispanic   Hispanic
#2 White Non-Hispanic      White
#3 Black      Unknown      Black
#4 Asian Non-Hispanic      Asian
#5 White         <NA>      White
#6 White Non-Hispanic      White

或者另一種選擇是replace

mydata %>% 
   mutate(EthnicRace = replace(Race, Ethnicity == "Hispanic", "Hispanic"))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM