我正在寻找一种基于现有列中的值将 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 个值来轻松添加更多列