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

如何按median列唯一值批量提取dataframe对应的所有数值

实现方案

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

# 1. 按median列拆分数据,仅保留sample开头的样本列
split_res <- split(df[, grepl("^sample", colnames(df))], f = df$median)
# 2. 将每个分组的样本值转为一维向量,并重命名列表元素
res <- lapply(split_res, function(x) unlist(x, use.names = F))
names(res) <- paste0("median", names(res))

# 如需按示例格式输出,运行下方代码即可
invisible(lapply(names(res), function(k) {
  cat(k, "\n")
  print(res[[k]])
  cat("\n")
}))

运行后直接通过res$median2、res$median5即可调用对应分组的数值向量。

方法2:tidyverse实现(更适合大型数据集,处理效率更高)

library(dplyr)
library(tidyr)

res <- df %>%
  # 样本列转为长格式
  pivot_longer(starts_with("sample"), values_to = "val") %>%
  # 按median分组汇总样本值
  group_by(median) %>%
  summarise(val_list = list(val)) %>%
  # 转为命名列表并修改名称
  deframe() %>%
  setNames(paste0("median", names(.)))

使用方法与基础R方案一致。


内容的提问来源于stack exchange,提问作者Mike de Groot

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 02:33:01