我正在尝试对大型数据集(约8000万行9列)进行计算,但问题是未清除的数据集包含9个不需要的行(具有不同的no和列类型),每2280行实际重复一次数据。
尝试了从基本(read.table)到sqldf,ff,data.frame的不同选项,但无法读取实际数据并且对R感到陌生,这增加了担忧。该选项的工作方式为read.table(file,skip = 9,fill = T),然后对其进行细分,但这就是读取不需要的行并花了很多时间并耗尽了我的内存。尝试并研究了100个小时的阅读pdf的时间,但是没有任何细节可以像我这样对初学者进行解释或解决
看起来像:
ITEM: TIMESTEP
0
ITEM: NUMBER OF ATOMS
2280
ITEM: BOX BOUNDS pp pp pp
-6.16961 6.16961
-6.16961 6.16961
-6.16961 6.16961
ITEM: ATOMS id mol type x y z ix iy iz
1 1 1 -0.31373 3.56934 -0.560608 1 -1 6
2 1 1 0.266159 3.08043 -1.20681 1 -1 6
3 1 1 1.07006 3.55954 -1.09484 1 -1 6
我想通过每n 2280行跳过前9行来读取9列值,而不会用完内存。
规格:Windows 8 x64、4 GB RAM,512 GB SSD,双核x64 R
我建议在Windows上下载Cygwin64。您可以对大型数据集进行快速处理,并将块发送到文件中,然后再在R中进行处理。这是一个示例,
从外壳中删除前9行,并将其余的行发送到"myFile2.txt"
,"myFile.txt"
原始数据在哪里
$ tail -n +10 myFile.txt > myFile2.txt
然后,在R中
> read.table('myFile2.txt')
# V1 V2 V3 V4 V5 V6 V7 V8 V9
# 1 1 1 1 -0.313730 3.56934 -0.560608 1 -1 6
# 2 2 1 1 0.266159 3.08043 -1.206810 1 -1 6
# 3 3 1 1 1.070060 3.55954 -1.094840 1 -1 6
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句