r - 有没有一种更快的方法可以将一个数据帧的列与其他数据帧的行相加而没有循环
问题描述
我正在尝试将数据框列(App_table)的 x 行与另一个数据框行(numeric_col_data)的 x 列相加。我目前已经使用循环完成了这项工作,但由于数据帧很大(~2M 行),因此需要数小时来计算。有没有更快的方法来完成同样的事情。
for (j in 1:nrow(Weighted_Scenario_table)) {
Weighted_Scenario_table[j,i] <- sum(App_table[,i]*numeric_col_data[j,])
}
}
解决方案
我想您可以先将数据帧转换为矩阵,然后应用矩阵产品,如下所示
Weighted_Scenario_table <- as.matrix(numeric_col_data) %*% as.matrix(App_table)
推荐阅读
- java - 我正在尝试查找每个部门的最新员工的薪水。一步使用 java 8
- xpath - 在 xpath 1.0 中查找以 4 位数字结尾的节点
- java - 使用 JavaFX 实现 3D 变换 Gizmo
- python-3.x - 用于 RandomForestRegressor 的超参数调整的 GA
- ubuntu - Ubuntu在启动时总是显示蓝屏
- linux - 从源文件夹复制到目标文件夹的脚本,如何从源文件夹中排除一个文件夹
- python - 模块“odoo.tools.pycompat”没有属性“integer_types”odoo 13
- javascript - jQuery DataTables 无法读取未定义的属性“mData”,但表是有效标记
- c# - 如何向 SOAP XML 添加新元素
- vb.net - 检查子字符串在字符串中出现的次数