使用write.csv保存千万行数据框丢失行数,求完整保存方案
解决大数据框完整保存与读取的问题
问题原因
你遇到的1048575行限制,刚好是旧版Excel的最大行数上限——大概率是保存后用Excel打开过,Excel自动截断数据并覆盖了原文件;另外base R的write.csv在处理千万级大文件时,效率低且容易出现隐性异常。
推荐解决方案
用专门处理大数据的工具包,速度更快且稳定性更高,以下是两种常用方案:
方案1:使用data.table包(推荐,处理超大文件速度最快)
- 先安装并加载包:
install.packages("data.table") library(data.table)
- 保存数据(支持直接写入data.frame,无需转换):
fwrite(A, file = "Bus station.csv", encoding = "EUC-KR")
- 读取数据:
B <- fread("Bus station.csv", header = TRUE, encoding = "EUC-KR")
方案2:使用readr包(tidyverse生态,语法更贴近base R)
- 安装并加载包:
install.packages("readr") library(readr)
- 保存数据:
write_csv(A, file = "Bus station.csv", locale = locale(encoding = "EUC-KR"))
- 读取数据:
B <- read_csv("Bus station.csv", locale = locale(encoding = "EUC-KR"))
注意事项
- 避免用Excel打开千万级行的CSV文件,直接用R的专用函数读写
- 保存时指定编码为
EUC-KR,确保读取时编码一致,避免乱码或列数异常
内容的提问来源于stack exchange,提问作者kang yep sng
相关产品推荐
相关产品推荐

