我有两列数据,包含3列和4行。我需要做的是用df2中的值替换df1中的某些元素。如果需要替换的元素在同一列中,这项工作将很容易完成。但是,我的问题是他们在不同的列。我有一个矩阵(这里是info
),其中提供了应该替换哪个列的信息。下面是一个例子。 info
表示前三行需要更改第一列和第三列,最后一行需要更改第二列和第三列。R:给定列位置信息,替换不同列中的数据元素
set.seed(1)
df1 <-matrix(sample(1:1000, 12, replace=T), ncol=3)
df2 <-round(matrix(runif(12, 0.1, 0.9),ncol=3),1)
info<-matrix(rep(1:3, 4),ncol=3, byrow=T)
info<-t(apply(info, 1, function(x) sort(sample(x, 2, replace=F))))
> df1
[,1] [,2] [,3]
[1,] 266 202 630
[2,] 373 899 62
[3,] 573 945 206
[4,] 909 661 177
> df2
[,1] [,2] [,3]
[1,] 0.6 0.7 0.8
[2,] 0.4 0.9 0.3
[3,] 0.7 0.4 0.6
[4,] 0.5 0.7 0.2
> info
[,1] [,2]
[1,] 1 3
[2,] 1 3
[3,] 1 3
[4,] 2 3
从这个例子,我想结果看起来像,
[,1] [,2] [,3]
[1,] 0.6 202 0.8
[2,] 0.4 899 0.3
[3,] 0.7 945 0.6
[4,] 909 0.7 0.2
任何帮助将非常感激。谢谢。