我有非常大的表(3000万行),我想加载为R中的数据帧 read.table()有很多方便的功能,但似乎实现中有很多逻辑会减慢速度.在我的情况下,我假设我提前知道列的类型,表不包含任何列标题或行名称,并且没有任何我必须担心的病态字符.
我知道在表格中阅读作为列表使用scan()可能非常快,例如:
datalist <- scan('myfile',sep='\t',list(url='',popularity=0,mintime=0,maxtime=0)))
Run Code Online (Sandbox Code Playgroud)
但是我将此转换为数据帧的一些尝试似乎将上述性能降低了6倍:
df <- as.data.frame(scan('myfile',sep='\t',list(url='',popularity=0,mintime=0,maxtime=0))))
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法呢?或者很可能完全不同的方法来解决问题?
我有一堆输出.txt文件,包含一个大参数列表和一个XY坐标集.我需要从所有文件中提取这些坐标,以便只将这些行导入到矢量中.这样可以正常使用
impcoord<-read.table("file.txt",skip= ,nrow= ,...)
Run Code Online (Sandbox Code Playgroud)
但是文件在不同长度的支持参数之后打印坐标集.
幸运的是,坐标总是在包含某些单词的行之后开始.
因此我的问题是,如何在这些单词之后开始阅读.txt文件?让我们说它们是:
coordinatesXY
Run Code Online (Sandbox Code Playgroud)
非常感谢您的时间和帮助!
-Olli
- 编辑 -
对困惑感到抱歉.
该文件的部分如下:
##XYDATA= (X++(Y..Y))
131071 -2065
131070 -4137
131069 -6408
131068 -8043
... ...
... ...
Run Code Online (Sandbox Code Playgroud)
第一行是skip应该结束的行,并且需要将以下坐标导入到向量中.如您所见,X坐标从131071开始并结束为0.