r - 如何将一个非常大的文件导入 R(用逗号分隔)
问题描述
我有一个xls
包含超过一百万行数据的文件。所有内容都在一列中,并用逗号分隔。Excel打开它需要很长时间,我只需要两条信息——客户ID和交易金额。
我的方法是将文件导入 R(用逗号分隔),然后提取我需要的两列。问题是导入后所有内容仍然在一列中。我已经尝试过read.csv(file, sep = ",")
并read_csv(file, col_names = T)
从readr
. 没有工作。但是,我将前五行保存为另一个xls
文件进行测试,它可以正常导入(正确分离),没有任何问题。
我也尝试cSplit
用逗号分割导入的数据集,但我得到了Error: C stack usage 14478558 is too close to the limit
. 我想这是由于文件大小。很抱歉,我无法提供可复制的示例,但数据如下所示,有 100 万行:
customer_id,type,note_number,amount,company
1,cc,abc,5,A
2,dc,bcd,7,B
3,cc,cde,10,C
编辑
感谢@akrun 的建议,来自函数的警告消息让我意识到源文件中包含data.table::fread(file)
一些字段。使导入和分离更加棘手的是有些有几个. 例如,某人的名字可以显示为而不是。,
""
""
""Joh, Dep""
"Joh Dep"
另外,正如@RonakShah 建议的那样,我创建了一个示例测试文件。
解决方案
推荐阅读
- linux - 查看上次在 http 服务器上更改文件的时间
- postgresql - 是否有时间戳的最大功能(有或没有时区)?
- java - 为什么我得到 OutOfMemoryError 但堆转储显示大量内存为空闲
- django - 如何在 Django 3.1.4 中为生产设置设置 BASE_DIR?
- c# - 我正在编写一个程序,该程序连续接受一个数字,并且仅当最后一个输入数字是前一个数字的两倍时才停止
- regex - 获取两个符号之间的所有内容。电源外壳。正则表达式
- json - 数据绑定不适用于带有对象属性的 React
- python - 合并两个值并删除重复项
- django - drf 不创建没有配置文件密钥的配置文件
- css - Chrome 88 中的 Angular Material 对话框意外滚动条