使用iflelse值我有如下的數據非常瑣碎的問題:替換中的R
sample<-list(c(10,12,17,7,9,10),c(NA,NA,NA,10,12,13),c(1,1,1,0,0,0))
sample<-as.data.frame(sample)
colnames(sample)<-c("x1","x2","D")
>sample
x1 x2 D
10 NA 1
12 NA 1
17 NA 1
7 10 0
9 20 0
10 13 0
注:與d的觀測數= 1是相同d = 0
現在,我想創建一個變量,當和D=1
的值爲D=0
時,它的值與D=0
有關。預期的輸出:
x1 x2 D x3
10 NA 1 10
12 NA 1 20
17 NA 1 13
7 10 0 NA
9 20 0 NA
10 13 0 NA
我嘗試使用ifelse
功能如下:
sample.data$x3<-with(sample.data, ifelse(D==1,x2[which(D==0)],x2[which(D==1)]))
我得到了以下錯誤:
logical(0)
我也試過如下:
sample.data$x3<-with(sample.data, ifelse(D==1,tail(x2,3),head(x2,3)))
再次,我得到了同樣的錯誤:
logical(0)
任何想法是什麼在這裏?
'$樣品X3 < - 樣品$ X2 [順序(樣品$ D)]' – Roland 2013-03-15 18:16:53
感謝您的快捷方案。 – Metrics 2013-03-15 18:22:00