既存の列の値に基づいて、3つの異なる列の3つの値をマトリックスに追加する方法を探しています。
experiment = rbind(1,1,1,2,2,2,3,3,3)
newColumns = matrix(NA,dim(experiment)[1],3) # make 3 columns of length experiment filled with NA
experiment = cbind(experiment,newColumns) # add new columns to the experimental data
experiment = data.frame(experiment)
experiment[experiment[,1]==1,2:4] = cbind(0,1,2) # add 3 columns at once
experiment$new[experiment[,1]==2] = 5 # add a single column
print(experiment)
X1 X2 X3 X4 new
1 1 0 0 0 NA
2 1 1 1 1 NA
3 1 2 2 2 NA
4 2 NA NA NA 5
5 2 NA NA NA 5
6 2 NA NA NA 5
7 3 NA NA NA NA
8 3 NA NA NA NA
9 3 NA NA NA NA
ただし、これは新しい列を間違った方法で埋めます。列2をすべて0にし、列3をすべて1にし、列4をすべて3にします。
一度に1列ずつ実行できることはわかっていますが、実際のデータセットは非常に大きいため、これは私の推奨されるソリューションではありません。列の範囲を大きくして、例の3つの値に値を追加するだけで、簡単に列を追加できるようにしたいと思います。