ffbase :: as.character中的“by”参数是做什么的?

时间:2015-06-27 20:01:50

标签: r character optional-parameters coercion ffbase

在下面的帖子中,

aggregation using ffdfdply function in R

有这样一条线。

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

出于好奇,我想知道by参数意味着什么。它似乎与ff数据帧有关,但我不确定。 <{1}}和as.character的Google搜索和R文档没有提供有用的信息。

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

as.vector

如果有人能告诉我它是什么,我会很感激。提前谢谢。

2 个答案:

答案 0 :(得分:3)

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

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

对于任何by或根本没有by,最终结果都是相同的。较大的值将导致更大的临时RAM使用,但可能会更快地运行。

答案 1 :(得分: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参数的作用。