You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R语言中基于两个dataframe计算加权平均值的最优方法

R实现方案

你需要的加权平均计算本质是矩阵乘法运算,无需嵌套for循环,直接用R原生的矩阵乘法操作就能一步得到结果,性能远高于循环实现,完全可以覆盖上百个普查片区和多边形的计算需求。

核心逻辑:

  • df2的每一列对应单个多边形的各普查片区面积占比权重,df1的每一行对应单个普查片区的各人口统计数据,将df2转置后与df1做矩阵乘法,输出结果就是每个多边形对应的加权统计值。

示例代码如下:

# 先对齐两个数据集的行顺序,保证同一行对应同一个普查片区
df1 <- df1[rownames(df2), ]

# 转换为矩阵后做乘法运算
result_mat <- t(as.matrix(df2)) %*% as.matrix(df1)

# 转换为data.frame方便后续处理
result_df <- as.data.frame(result_mat)

运行后得到的result_df和你给出的预期结果完全一致,如果你需要保留两位小数,可以加一步格式化:

result_df <- round(result_df, 2)

内容的提问来源于stack exchange,提问作者deathcon501

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 10:36:02