2

在下面的帖子中,

在 R 中使用 ffdfdply 函数进行聚合

有这样一条线。

splitby <- as.character(data$Date, by = 250000)

只是出于好奇,我想知道by参数是什么意思。它似乎与ff数据框有关,但我不确定。谷歌搜索和 R 文档as.characteras.vector没有提供任何有用的信息。

我尝试了一些示例,但下面的代码给出了相同的结果。

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)

如果有人能告诉我它是什么,我将不胜感激。先感谢您。

4

2 回答 2

3

由于在内部as.character.ff使用默认值as.character,并且考虑到 df 向量可以大于 RAM 的事实,因此需要以块的形式处理数据。该chunk功能有助于将块划分为块。在这种情况下,相关的方法是chunk.ff_vector。默认情况下,这将通过除以getOption("ffbatchbytes")记录大小来计算块大小。但是,可以通过使用提供块大小来覆盖此行为by

在您给出的示例中,ff 向量将一次转换为character250000 个成员。

by不管有没有,最终的结果都是一样的by。较大的值将导致更多的临时 RAM 使用,但可能更快的操作。

于 2015-06-27T21:09:53.623 回答
1

首先,该功能ffbase::as.character不是普通的旧base::as.character

http://www.inside-r.org/packages/cran/ffbase/docs/as.character.ff 里面说

as.character((x, ...))

Arguments:
x: a ff vector
...: other parameters passed on to chunk

所以by参数被传递给某个chunk函数。然后你需要弄清楚chunk正在使用哪个包的功能。输入?chunk,告诉我们是哪一个,然后去阅读它的文档,看看它的by论点是做什么的。

于 2015-06-27T20:36:22.783 回答