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

如何将单行dataframe与字符向量合并为目标格式的dataframe?

解决方案:单行DataFrame与字符向量合并成多行DataFrame

问题场景

现有一个单行元数据DataFrame:

# 示例数据
meta_df <- data.frame(
  Donor = "WT5",
  Treatment = "ST002_50uM",
  Timepoint = "6hr",
  row.names = "MK434_016"
)

以及一个包含细胞ID的字符向量:

cell_ids <- c("AAACAAGCAAACAAGAATTCGGTT-1", "AAACAAGCAAACAATCATTCGGTT-1", 
              "AAACAAGCAAACCTGAATTCGGTT-1", "AAACAAGCAAACTTGGATTCGGTT-1", 
              "AAACAAGCAAAGACCCATTCGGTT-1", "AAACAAGCAAAGGTAAATTCGGTT-1")

需要将元数据重复对应次数,把字符向量作为新行名,得到每行对应一个细胞ID的DataFrame。

实现方法

方法1:基础R代码

核心思路是重复单行数据至字符向量长度,再替换行名:

# 重复单行DataFrame,次数等于cell_ids的元素个数
result_df <- meta_df[rep(1, length(cell_ids)), ]
# 替换为目标行名
rownames(result_df) <- cell_ids

方法2:dplyr包简化实现

如果习惯用tidyverse工具链:

library(dplyr)

result_df <- meta_df %>%
  # 重复所有行(这里仅1行)指定次数
  slice(rep(1:n(), each = length(cell_ids))) %>%
  # 赋值新行名
  `rownames<-`(cell_ids)

说明

之前尝试的rbind()需要行数匹配的数据集才能合并,paste()是字符拼接操作,都不适合这种"单行数据批量重复+替换行名"的场景,上述两种方法可以直接得到你需要的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 11:35:08