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

R语言导入表格时能否直接转义作为分隔符的字面量"/t"?

直接在导入阶段指定"/t"为分隔符的两种解决方案

方案1:tidyverse/readr包方案(最简便)

readr包的read_delim()原生支持多字符字面量分隔符,无需额外做数据清洗:

library(tidyverse)

df <- read_delim(
  file = "ponies.txt",
  delim = "/t",
  name_repair = "minimal" # 保留列名中的空格,不自动修改
)

读取完成后直接得到结构正确的数据集,和你手动清洗后的结果完全一致。

方案2:base R原生方案(无需加载第三方包)

base R的read.table系列仅支持单字符分隔符,你可以先读入全行再拆分:

# 读入文件所有行
raw_lines <- readLines("ponies.txt")
# 按字面量"/t"拆分每一行
splited <- strsplit(raw_lines, "/t", fixed = TRUE)
# 转换为数据框,第一行设为列名
df <- setNames(
  as.data.frame(do.call(rbind, splited[-1]), stringsAsFactors = FALSE),
  gsub('"', '', splited[[1]])
)

问题原因说明

你之前用read.delim设置sep="/t"只得到1列,是因为base R的read.table类函数仅支持单字符分隔符,传入多字符字符串时仅会取第一个字符"/"作为分隔符,才会出现后续需要手动移除每个字段开头的"t"的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 21:15:03