2011-04-06 323 views
1

我想创建一个新变量,其值由两个现有变量的相应值确定。我的数据集与下面的数据集类似:根据现有变量使用R创建新变量

aid <- c(1,2,3,4,5) 
temp <- c(38,39,NA,41,NA) 
surv1 <- c(5,8,0,6,9) 
data <- data.frame(aid,temp,surv1) 

现在,我想创建一个名为surv2的新变量。 也就是说,如果temp是NA,那么surv2也应该是NA; 并且如果温度不NA然后surv2应该采取surv1

#The final data should look like this: 
aid <- c(1,2,3,4,5) 
temp <- c(38,39,NA,41,NA) 
surv1 <- c(5,8,0,6,9) 
surv2 <- c(5,8,NA,6,NA) 
+0

巴兹 - 我删除了“”周围的NA是如此的R正确地解释他们为不可用,而不是作为字符串“NA”。 – Chase 2011-04-06 04:57:08

回答

2

ifelse的值的计算结果在由元件方式的元件的条件(temp是否是NA)。我们将测试temp是否为NA,并根据结果将结果值指定为NA或surv1。

data$surv2 <- with(data, ifelse(is.na(temp), NA, surv1)) 
+0

!为此非常感谢。我正在使用这个脚本:data $ surv2 < - ifelse(is.na(data $ temp,NA,data $ surv1),但它不起作用,因为它读取的是“NA”作为字符串。 “”不是有意的,但它给了我我不想要的东西,不过,再次感谢! – baz 2011-04-06 05:22:44

+0

如果这个答案解决了你的问题,不要忘记接受它是这样的:) :) – 2011-04-06 05:27:28

+1

@罗曼,是的,的确,只是用它,因为它给了我我想要的,并接受它。 – baz 2011-04-06 06:05:46