【发布时间】:2014-08-17 08:36:13
【问题描述】:
我有以下代码行:
train <- read.csv("avito_train.tsv", sep='\t', stringsAsFactors = F)
训练文件大约 3 GB。加载所有这些数据需要很长时间。
我的问题是,一个合适的数据科学家会加载所有数据还是只使用一个子集?我注意到我可以使用nrows 参数来指定要读取的最大行数。
我也相信将所有这些数据加载到语料库中(我必须这样做)可能会非常耗时。对于使用大量训练和测试数据编写机器学习程序的推荐策略是否存在普遍共识?
【问题讨论】:
-
有一些方法可以优化 R 中的数据加载。您告诉 R 必须加载的数据结构越多,加载数据的速度就越快。具体来说,如果你能告诉它有多少列,每列的数据类型是什么,并且如果你碰巧知道数据有多少行,R 将更容易加载它。
-
谢谢;任何代码示例也会对我有所帮助;不过,我假设您指的是
read.csv()方法上的参数。 -
谢谢,我会尽力提供一个很好的例子。是的,我指的是 read.csv()。实际上我指的是 read.table,而 read.csv() 只是一个具有某些预设默认值的包装函数。
-
查看
fread()包中的data.table。它比read.csv()快得多。此外,您可以尝试使用函数load()和save()将尽可能多的数据保留为可以更快加载到R 中的二进制格式。 -
@konvas 谢谢。我忘了我可以在 R 中使用
save()功能。这也应该很有帮助。
标签: r