【发布时间】:2020-07-20 08:49:03
【问题描述】:
我有一个看起来像这样的 df:
id <- c(1:8)
born.swis <- c(0, 1, NA, NA, NA, 2, NA, NA)
born2005 <- c(NA, NA, 2, NA, NA, NA, NA, NA)
born2006 <- c(NA, NA, NA, 1, NA, NA, NA, NA)
born2007 <- c(NA, NA, NA, NA, NA, NA, NA, 1)
born2008 <- c(NA, NA, NA, NA, NA, NA, 2, NA)
born2009 <- c(NA, NA, NA, NA, NA, NA, NA, NA)
df <- data.frame(id, born.swis, born2005, born2006, born2007, born2008, born2009)
我正在尝试根据其他变量的值来改变 Born.swis。基本上,我希望值 Bornswis 填充其他变量之一的值 IF Born.id 是 NA 并且 IF 它不是该变量的 NA 。像这样的:
id <- c(1:8)
born.swis <- c(0, 1, 2, 1, NA, 2, 2,1)
df.desired <- data.frame(id, born.swis)
我用 mutate 和 ifelse 尝试了几件事,像这样:
df <- df%>%
mutate(born.swis = ifelse(is.na(born.swis), born2005, NA,
ifelse(is.na(born.swis), born2006, NA,
ifelse(is.na(born.swis), born2007, NA,
ifelse(is.na(born.swis), born2008, NA,
ifelse(is.na(born.swis), born2009, NA,)
)))))
和类似的事情,但我无法达到我想要的结果。
有什么想法吗?
非常感谢!
【问题讨论】:
标签: r if-statement data.table dplyr