我有一个数据框有三个变量,每个变量的有效值为1,2,3,4,5,6,7。如果没有分配给变量的数值,它将显示NA
。数据帧a
看起来象下面这样:如何根据来自多个列的值创建变量
ak_eth co_eth pa_eth
1 NA 1 NA
2 NA NA 1
3 NA NA NA
4 2 NA NA
5 NA NA 4
6 NA NA NA
每行可以跨所有三个变量NA
或有三个变量中的一个只有一个值。我想创建一个名为recode
的新变量,该变量从现有的三个变量中获取值。如果所有三个现有变量均为NA
,则新值为NA
;如果三个现有变量中的一个有一个值,则将该值作为新变量。 我试过这个,但它似乎没有为我工作。
a$recode[is.na(a$ak_eth) & is.na(a$co_eth) & is.na(a$pa_eth)] <- "NA"
library(car)
a$recode <- recode(a$ak_eth, "1=1;2=2;3=3;4=4;5=5;6=6;7=7")
a$recode <- recode(a$co_eth, "1=1;2=2;3=3;4=4;5=5;6=6;7=7")
a$recode <- recode(a$pa_eth, "1=1;2=2;3=3;4=4;5=5;6=6;7=7")
任何建议,将不胜感激。谢谢!
不要创建一个字符'“NA”' – akrun