我有非常大的表(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)
有没有更好的方法呢?或者很可能完全不同的方法来解决问题?
我有一个5gig的csv文件(也作为一个sas数据文件,如果它会更容易)我需要放入一个sql数据库,所以我可以在R中使用它
变量名称全部包含在第一个观察行中,并且是双引号.有1000多个变量,其中一些是数字的其他字符(尽管一些字符变量是数字字符串,但我不太担心它我可以在R中修复它).
我的问题是如何将csv文件导入到我的数据库中的新表中,而且痛苦最小?
我发现事情首先要创建你的表(包括指定所有变量,我有1000+),然后使用".import文件表"来引入数据.或者,使用一些gui导入向导,这对我来说不是一个选项.
对不起,如果这是SQL 101,但感谢您的帮助.
我想读取一个CSV文件,其第一行是变量名,后续行是这些变量的内容.有些变量是数字的,有些是文本,有些甚至是空的.
file = "path/file.csv"
f = file(file,'r')
varnames = strsplit(readLines(f,1),",")[[1]]
data = strsplit(readLines(f,1),",")[[1]]
Run Code Online (Sandbox Code Playgroud)
既然数据包含所有变量,我该如何使数据能够识别正在读取的数据类型,就像我一样read.csv.
我需要逐行读取数据(或一次读取n行),因为整个数据集太大而无法读入R.