如何用readr导入以@和,为分隔符的CSV文件?
解决CSV文件同时以@和,为分隔符的导入问题
你可以用以下两种方法实现同时将@和,作为分隔符导入CSV文件:
方法一:使用readr::read_delim自定义正则分隔符
read_csv仅支持单一逗号分隔符,而read_delim允许通过正则表达式指定多个分隔符,直接匹配@或,即可:
library(readr) # 导入文件,指定分隔符为@或, df <- read_delim( file = 'myfile.csv', delim = '[@,]', # 正则表达式匹配两种分隔符 progress = TRUE )
如果你的CSV文件第一行是表头(包含CoreId、Identifier、type等字段),上述代码会自动识别表头;如果没有表头,可以通过col_names参数手动指定列名,比如col_names = c("CoreId", "Identifier", "type")。
方法二:先替换分隔符再导入
先将文件中的所有@替换为逗号,统一分隔符后再用read_csv读取:
library(readr) # 读取文件原始文本 file_text <- read_file('myfile.csv') # 将@替换为逗号 processed_text <- gsub('@', ',', file_text) # 从处理后的文本导入数据 df <- read_csv(processed_text, progress = TRUE)
两种方法都能满足需求:方法一更直接,无需修改原始文件;方法二更直观,适合对正则表达式不熟悉的场景。
内容的提问来源于stack exchange,提问作者Laura
相关产品推荐
相关产品推荐

