R 如何在替换每个向量中的元素时将多个向量合并为一个向量
假设有一个来自调查的数据框架R 如何在替换每个向量中的元素时将多个向量合并为一个向量,r,loops,vector,R,Loops,Vector,假设有一个来自调查的数据框架 race=Black race=White race=Hispanic T F F T F F F T F ... 在这种情况下,每一列都是一个向量,可以具有F的值T。 此外,T在每个向量中的位置不会重叠。 我想合并这个向量,这样结果就会 column: race Black Black White ... 有一个简单的方
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\u
首先,加载包和示例数据:
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)
如果变量是字符
和字符串
值,则可以运行
Mydata <- Mydata %>%
mutate(race = case_when(Black == "T" ~ "Black",
White == "T" ~ "White",
Hispanic == "T" ~ "Hispanic",
TRUE ~ ""))
Mydata%
当(黑色==“T”~“黑色”,
白色==“T”~“白色”,
拉美裔==“T”~“拉美裔”,
真~“”)
您的值都是逻辑类型的吗?如果是这样,请尝试names(your_dataframe)[max.col(your_dataframe)]
如果不是,请共享dput(head(your_dataframe))
的输出。您的条件可以简化为Black~“Black”,White~“White”
等。假设OP像您一样处理逻辑。
Mydata <- Mydata %>%
mutate(race = case_when(Black == "T" ~ "Black",
White == "T" ~ "White",
Hispanic == "T" ~ "Hispanic",
TRUE ~ ""))