gpt4 book ai didi

r - 如何根据 R 中另一列中的字符创建二进制列?

转载 作者:行者123 更新时间:2023-12-05 08:29:48 25 4
gpt4 key购买 nike

ROW   ID       SEX               RACE               
2 REC1000023 F 1.Black
7 REC1000032 M 6.White
8 REC1000066 M 4.Asian
9 REC1000078 M 6.White
10 REC1000099 M 5.Multiracial

我想创建一个二进制变量“Black”,并根据“RACE”列中的值将其设置为 0 或 1。我还想要一个“白色”列和一个“其他”列。像这样:

ROW   ID       SEX               RACE           Black   White  Other        
2 REC1000023 F 1.Black 1 0 0
7 REC1000032 M 6.White 0 1 0
8 REC1000066 M 4.Asian 0 0 1
9 REC1000078 M 6.White 0 1 0
10 REC1000099 M 5.Multiracial 0 0 1

最佳答案

如果 Black 总是编码为 1.BlackWhite 总是编码为 6.White您可以使用 == 进行比较,并使用 + 将 TRUE/FALSE 向量转换为 1/0:

df$Black <- +(df$RACE == "1.Black")
df$White <- +(df$RACE == "6.White")

如果其他字符发生变化,那么您可以使用 grepl:

df$Black <- +grepl("Black", df$RACE, fixed = TRUE)
df$White <- +grepl("White", df$RACE, fixed = TRUE)

要获取剩余的列 Other,只需使用 BlackWhite 中已有的内容:

df$Other <- 1 - (df$Black | df$White)

结果:

df
# ROW ID SEX RACE Black White Other
#1 2 REC1000023 F 1.Black 1 0 0
#2 7 REC1000032 M 6.White 0 1 0
#3 8 REC1000066 M 4.Asian 0 0 1
#4 9 REC1000078 M 6.White 0 1 0
#5 10 REC1000099 M 5.Multiracial 0 0 1

关于r - 如何根据 R 中另一列中的字符创建二进制列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67996444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com