簡體   English   中英

如何在替換每個向量中的元素時將多個向量合並為一個

[英]how to combine multiple vectors into one while replacing elements in each vector

假設有一個來自調查的數據框

race=Black   race=White   race=Hispanic
T            F            F
T            F            F
F            T            F
...

在這種情況下,每一列都是一個向量,可以具有F的值T 此外,每個向量中T的位置不會重疊。 我想結合這個向量,這樣結果就是

column: race
Black
Black
White
... 

有沒有簡單的方法?

您可以使用dplyr包中的mutatecase_when

首先,加載包和示例數據:

library(dplyr)

zz <- "Black White Hispanic
1        T    F        F
2        T    F        F
3        F    T        F"

Mydata <- read.table(text=zz, header = TRUE)

假設您的變量類型是logicals變量,您可以按照@markus 在評論中的建議運行以下命令:


Mydata <- Mydata %>% 
            mutate(race = case_when(Black ~ "Black",
                                    White ~ "White",
                                    Hispanic ~ "Hispanic",
                                    TRUE ~ ""))

如果您的變量是帶有string值的characters ,那么您可以運行


Mydata <- Mydata %>% 
            mutate(race = case_when(Black == "T" ~ "Black",
                                    White == "T" ~ "White",
                                    Hispanic == "T" ~ "Hispanic",
                                    TRUE ~ ""))

暫無
暫無

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

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