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

使用lapply读取列数不同的CSV文件时,如何指定逗号分隔符?

CSV文件读取问题解决方案

1. 用lapply+read.delim指定逗号分隔符

read.delim默认以制表符(\t)作为分隔符,读取逗号分隔的CSV时必须显式设置sep = ","参数。在lapply中直接传递该参数即可:

df_list <- lapply(files, read.delim, sep = ",", header = TRUE)

更简便的方式是用read.csv——它是read.delim的封装,默认分隔符就是逗号:

df_list <- lapply(files, read.csv)

2. 读取列数不一致的CSV生成数据框列表

你用readr::read_delim(files, delim = ",")报错,是因为该函数批量接收文件路径向量时,强制要求所有文件列数统一。解决办法是通过lapply逐个读取每个文件,让每个文件独立解析自身的列结构:

library(readr)
df_list <- lapply(files, function(file_path) {
  read_delim(file_path, delim = ",")
})

如果需要统一列类型(避免不同文件同名列类型冲突),可以添加col_types参数,比如默认将所有列设为字符型:

df_list <- lapply(files, function(file_path) {
  read_delim(file_path, delim = ",", col_types = cols(.default = col_character()))
})

要是后续需要统一所有数据框的列集合(缺失列填充NA),可以读取后用dplyr::bind_rows合并再拆分,但如果仅需保留各文件原有列结构,上述逐个读取的方式就足够。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 18:57:14