让我们采用以下我导入的数据集的简化版本read.table
:
a<-as.data.frame(c("M","M","F","F","F"))
b<-as.data.frame(c(25,22,33,17,18))
df<-cbind(a,b)
colnames(df)<-c("Sex","Age")
实际上,我的数据集非常大,我只对一小部分数据感兴趣,即有关 18 岁或以下女性的数据。在上面的示例中,这只是最后 2 个观察结果。
我的问题是,我可以立即导入这些观察结果,而不导入其余数据,然后使用subset
完善我的数据库。我的电脑容量有限,所以我一直在使用scan
分块导入我的数据,但这是极其耗时。
有更好的解决方案吗?
一些可能有效的方法:
1 - 使用类似的包ff
可以帮助您解决 RAM 问题。
2 - 在将数据加载到 R 之前,使用其他工具/语言清理数据。
3 - 如果您的文件不太大(即,您可以加载它而不会崩溃),那么您可以将其保存到 .RData 文件并从此文件中读取(而不是调用 read.table):
# save each txt file once...
save.rdata = function(filepath, filebin) {
dataset = read.table(filepath)
save(dataset, paste(filebin, ".RData", sep = ""))
}
# then read from the .Rdata
get.dataset = function(filebin) {
load(filebin)
return(dataset)
}
这比从 txt 文件读取要快得多,但我不确定它是否适用于您的情况。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)