在下面的帖子中,
aggregation using ffdfdply function in R
有这样一行。
splitby <- as.character(data$Date, by = 250000)
出于好奇,我想知道 by
参数是什么意思。它似乎与 ff 数据框有关,但我不确定。 as.character
和 as.vector
的 Google 搜索和 R 文档没有提供有用的信息。
我尝试了一些示例,但下面的代码给出了相同的结果。
d <- seq.Date(Sys.Date(), Sys.Date()+10000, by = "day")
as.character(d, by=1)
as.character(d, by=10)
as.character(d, by=100)
如果有人能告诉我这是什么,我将不胜感激。预先感谢您。
最佳答案
由于 as.character.ff
在内部使用默认的 as.character
工作,并且鉴于 df 向量可能大于 RAM,因此数据需要以 block 的形式进行处理。 chunk 函数有助于将其划分为 block 。在这种情况下,相关方法是chunk.ff_vector。默认情况下,这将通过将 getOption("ffbatchbytes") 除以记录大小来计算 block 大小。但是,可以通过使用 by
提供 block 大小来覆盖此行为。
在您给出的示例中,ff 向量将一次转换为字符
250000 个成员。
对于任何 by
或根本没有 by
,最终结果都是相同的。值越大,RAM 的临时使用量越大,但操作速度可能会更快。
关于r - ffbase::as.character 中的 "by"参数有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31092967/