我正在try 进行矢量化,避免For循环.
我有两个向量和一个矩阵.此外,我还有一个结果data.Frame,在其中我 for each ID保存了向量的相应值.此外,我希望获得每个ID的矩阵的相应值,即matrix[vector1[ID],vector2[ID]]
.然而,我想以一种矢量化的形式来做这件事.
我的数据:
vector1 <- sample(1:5, 10, 1)
vector2 <- sample(1:3,10,1)
df <- data.frame(v1=sample(1:10,5,1),
v2=sample(1:10,5,1),
v3=sample(1:10,5,1))
results <- data.frame(ID=1:10,
vector1,
vector2
)
对于每个ID,我想要df[vector1[1],vector2[1]]
个,但以矢量化的形式,这样我可以直接将其保存在结果中.
我try 了以下几种方法:results$new=df[vector1,vector2]
,但没有得到我想要的结果.我想要这样的东西:
ID vector1 vector2 new
1 2 3 4
其中,列NEW的计算方式为df[vector1[1],vector2[1]]
ID vector1 vector2 new
1 2 3 4
2 3 6 2
3 1 1 1
有办法做到这一点吗?