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

如何高效将制表符分隔字符串列表转为指定行/列的DataFrame?

解决方案

可以用两种高效方法实现需求,直接看代码和说明:

基础R实现

先写个解析函数处理单个列表,再批量合并:

# 定义解析函数:把带制表符的字符串列表转成单行数据框
parse_list <- function(lst) {
  # 按制表符分割每个字符串
  split_str <- strsplit(lst, "\t")
  # 提取列名(去掉末尾的冒号)和数值(转成整数)
  cols <- gsub(":$", "", sapply(split_str, `[`, 1))
  vals <- as.integer(sapply(split_str, `[`, 2))
  # 转成单行数据框
  as.data.frame(t(vals), col.names = cols)
}

# 把xx、yy放进命名列表,批量处理后合并成最终数据框
result <- do.call(rbind, lapply(list(xx = xx, yy = yy), parse_list))

运行后result就是目标格式:行名是xx/yy,列名是raw total sequences/1st fragments,对应数值已转成整数类型。

tidyverse简洁实现

如果常用tidyverse工具,用purrr+dplyr可以一步到位:

library(tidyverse)

result <- list(xx = xx, yy = yy) %>%
  map_dfr(function(lst) {
    lst %>%
      str_split("\t", simplify = TRUE) %>%
      as_tibble() %>%
      mutate(
        V1 = str_remove(V1, ":$"),  # 去掉列名末尾的冒号
        V2 = as.integer(V2)         # 数值转成整数
      ) %>%
      pivot_wider(names_from = V1, values_from = V2)
  }, .id = "row_name") %>%  # 保留原列表名称作为行名来源
  column_to_rownames("row_name")  # 把列转成行名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 15:20:41