You need to enable JavaScript to run this app. R语言中如何使用另一数据框的值对数据框指定列进行计算?
优惠活动
大模型
产品
解决方案
定价
更多

R语言中如何使用另一数据框的值对数据框指定列进行计算?

问题原因

你代码无法得到预期结果的核心原因是:直接调用完整的Constant数据框参与乘法计算,没有根据Category字段匹配对应类别的k值,导致计算逻辑不匹配。

解决方案

方案1:使用dplyr关联表后计算(最直观)

先通过关联操作把对应类别的k值匹配到实验数据表中,再直接计算z即可,无需提前分组:

library(dplyr)

# 按Category关联常量表,匹配对应k值后计算z
df <- df %>%
  left_join(Constant, by = "Category") %>%
  mutate(z = k * y)

# 如果不需要保留k列,可在mutate后加 select(-k) 删除

方案2:base R 原生实现

不想依赖dplyr的话,可以用match函数匹配对应k值后计算:

df$z <- Constant$k[match(df$Category, Constant$Category)] * df$y

两种方案计算结果一致:Category为a的行k=1,z与y取值相同;Category为b的行k=2,z为y的2倍,符合你的计算规则。

内容的提问来源于stack exchange,提问作者Daniel Valencia C.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 23:54:03