私は以下のようなデータで非常に些細な質問があります:
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と同じです
ここで、 whenに関連する値とwhenにx3
関連する値を持つ変数を作成します。期待される出力:D=0
D=1
D=1
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)
ここで何が起こっているのか分かりますか?