R 有没有一种更快的方法可以将一个数据帧的列与另一个数据帧的行相加而不产生循环
我试图将一个数据帧列(App_table)的x行积为另一个数据帧行(numeric_col_data)的x列。我目前已经使用循环完成了这项工作,但由于数据帧很大(约200万行),计算起来需要几个小时。有没有更快的方法来实现同样的目标R 有没有一种更快的方法可以将一个数据帧的列与另一个数据帧的行相加而不产生循环,r,loops,dataframe,R,Loops,Dataframe,我试图将一个数据帧列(App_table)的x行积为另一个数据帧行(numeric_col_data)的x列。我目前已经使用循环完成了这项工作,但由于数据帧很大(约200万行),计算起来需要几个小时。有没有更快的方法来实现同样的目标 for (j in 1:nrow(Weighted_Scenario_table)) { Weighted_Scenario_table[j,i] <- sum(App_table[,i]*numeric_col_data[j,])
for (j in 1:nrow(Weighted_Scenario_table)) {
Weighted_Scenario_table[j,i] <- sum(App_table[,i]*numeric_col_data[j,])
}
}
for(1中的j:nrow(加权情景表)){
加权方案表[j,i]我想您可以先将数据帧转换为矩阵,然后应用矩阵积,如下所示
Weighted_Scenario_table <- as.matrix(numeric_col_data) %*% as.matrix(App_table)
加权情景表可能使用矩阵乘法,即数值列数据%*%App\u表
?@chinsoon12我想在矩阵乘法之前需要进行类型转换…这是sumproduct还是仅仅乘法?@user2733655它是sumproduct。您可以用较小的示例来验证它