我有一个复杂的问题,我会尽量简化我的数据集,以简化。说我有5个变量:如何创建与不同的变量值的新变量,如果另一变量等于R中设定值?
df$Id <- c(1:12)
df$Date <- c(NA,NA,a,a,b,NA,NA,b,c,c,b,a)
df$va <- c(1.1, 1.4, 2.5, ...) #12 randoms values
df$vb <- c(5.9, 2.3, 4.7, ...) #12 other random values
df$vc <- c(3.0, 3.3, 3.7, ...) #12 more random values
然后我想创建一个新的变量,需要从VA,VB或VC的值,如果日期是等于a,b或c。我试过了一个嵌套的if-else,这不起作用。我也试过:
df$new[df$date=='a' & !is.na(df$date)] <- df$va
df$new[df$date=='b' & !is.na(df$date)] <- df$vb
df$new[df$date=='c' & !is.na(df$date)] <- df$vc
此留下正确NA的新变量,其中日期= NA,但提供的值不从VA,VB,或VC,但其他一些价值干脆。如果日期是'a',如何获得df $新的等于va,如果日期是'b',vb是否等于vb,如果日期是'c',vc是什么?
想要'ifelse'函数。的 –
可能重复的[如何如果另一个变量等于R中的一组值创建与来自不同的变量值的新变量?](http://stackoverflow.com/questions/30113308/how-to-create-a-new-可变值与来自不同变量 - 如果另一个变种) – LJW