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

使用R语言dplyr包补全数据框数值并填充对应列

解决方案

可以用dplyr包的分组、序列生成和连接操作实现需求,步骤如下:

  1. 若未安装dplyr,先运行install.packages("dplyr")安装包
  2. 按sess分组,计算每组values的最小/最大值,生成该区间内间隔0.001的所有数值
  3. 将生成的扩展序列与原数据框做左连接,保留原有phase值,新增数值的phase自动填充为NA

完整代码示例:

library(dplyr)

# 你的原始数据
values = c(0.086,0.092, 0.099, 0.080,0.092, 1.02)
sess   = c(1, 1,1, 2, 2,2)
phase = c(1,2,3,2,1,5)
df = data.frame(values, sess, phase)

# 生成扩展后的数据集
expanded_df <- df %>%
  group_by(sess) %>%
  summarise(
    # 生成当前session下从最小值到最大值、间隔0.001的所有数值
    values = seq(min(values), max(values), by = 0.001),
    .groups = "drop"
  ) %>%
  # 左连接原数据,保留原有的phase值
  left_join(df, by = c("sess", "values"))

# 查看结果
head(expanded_df)

代码说明

  • group_by(sess):按会话分组处理数据
  • summarise(seq(...)):为每个会话生成指定区间的数值序列,.groups="drop"用于取消分组状态
  • left_join(...):以sess和values为连接键,将原数据中的phase匹配到对应数值上,没有匹配到的新生成数值,phase列会显示为NA,满足“仅保留原数据中的对应值”的要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 06:58:17