2011-04-06 151 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