[英]How to combine multiple vectors such that elements of each vector are distributed as equally as possible?
[英]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
包中的mutate
和case_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.