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

如何在R中将带|分隔符的文本拆分至DataFrame的多列?

解决方法

你的问题根源在于原始文本包含了R控制台输出的冗余内容([1] "和结尾的"),且使用separate_wider_delim时未指定要拆分的目标列。以下是两种可行的解决方式:

方法一:清理文本后用separate_wider_delim拆分

library(tidyverse)

txt <- '[1] "TRIGLYCERIDES SERUM|115.3|Normal : Upto 150 Border Line mg/dl"'

# 先清理冗余的前缀和后缀
clean_txt <- str_remove_all(txt, '^\\[1\\] "|"$')

# 转成表格后指定列进行拆分
tibble(value = clean_txt) %>%
  separate_wider_delim(cols = value, 
                       delim = "|",
                       names = c("Test Name","Result","Unit"))

方法二:清理文本后用read.csv读取

library(tidyverse)

txt <- '[1] "TRIGLYCERIDES SERUM|115.3|Normal : Upto 150 Border Line mg/dl"'

clean_txt <- str_remove_all(txt, '^\\[1\\] "|"$')

# 读取时指定无表头,再手动设置列名
read.csv(text = clean_txt, check.names = FALSE, sep = "|", header = FALSE) %>%
  set_names(c("Test Name","Result","Unit"))

关键说明

  • 用str_remove_all剔除开头的[1] "和结尾的双引号,得到纯分隔符分隔的有效内容。
  • separate_wider_delim必须通过cols参数明确指定要拆分的列,这是你之前报错的核心原因。
  • 使用read.csv时需加上header = FALSE,因为清理后的文本不包含表头,之后再手动设置列名即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 13:12:42