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

R语言按条件合并多行行为调研数据的实现方案咨询

解决方案

你可以用tidyverse中的fill()函数按用户id分组后填充公共字段,再过滤掉both条件的行即可实现需求,示例代码如下:

library(tidyverse)

# 原始数据
a <- 
  tibble(id = c(rep(1, 3), rep(2,3), rep(3, 3)) , condition = rep(c("both", "x", "y"),3), belief = c(4.8, NA, NA, 3.2, NA, NA, 6.5, NA, NA), past = c(1.8, NA, NA, 4.8, NA, NA, 2.6, NA, NA), current= c(1.8, NA, NA, 3.8, NA, NA, 3.1, NA, NA), feel = c(NA, .6, 1, NA, 2.1, 2.3, NA, 2.6, 1.5), willing = c(NA, 3.6, 205, NA, 2.1, 2.3, NA, 1.3, 0.3))

# 处理代码
b <- a %>%
  group_by(id) %>%
  # 填充both行的公共字段到同id的x、y行
  fill(belief, past, current, .direction = "down") %>%
  ungroup() %>%
  # 过滤掉不需要的both条件行
  filter(condition != "both")

# 验证输出
b

运行后得到的b和预期输出结构完全一致。如果你的数据中both行不是每个id的第一行,可以将fill的direction参数调整为"downup",确保所有空值都能被同id的有效值填充。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:45:02