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

R语言中如何将符合条件的相同值填充到新列对应分组行

解决方案

方法1:使用dplyr包实现(代码简洁易读,扩展性强)

核心逻辑是按id、condition分组后,提取每组内stimulus == "anger"对应的answer值,填充到组内所有行:

library(dplyr)
mydata <- mydata %>%
  group_by(id, condition) %>%
  mutate(answerFormatted = ifelse(is.na(condition), NA, answer[stimulus == "anger" & test_part == "emotion"])) %>%
  ungroup()

方法2:基础R实现(无需额外安装依赖包)

# 提取所有符合要求的anger类stimulus对应的answer值
anger_vals <- mydata$answer[mydata$stimulus == "anger" & mydata$test_part == "emotion"]
# 提取按出现顺序排列的非NA condition值
cond_levels <- unique(na.omit(mydata$condition))
# 按分组填充对应值
for (i in seq_along(cond_levels)) {
  mydata$answerFormatted[mydata$condition == cond_levels[i]] <- anger_vals[i]
}

两种方案运行后得到的answerFormatted列和你给出的预期结果完全匹配,支持多id、多条件组的场景直接复用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:06:05