ffbase::as.character 中的 "by" 参数有什么作用?
What does the "by" argument in ffbase::as.character do?
在下面的post中,
aggregation using ffdfdply function in R
有这样一行
splitby <- as.character(data$Date, by = 250000)
出于好奇,我想知道 by
参数是什么意思。它似乎与 ff
数据框有关,但我不确定。 Google as.character
和 as.vector
的搜索和 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)
如果有人能告诉我它是什么,我将不胜感激。提前谢谢你。
首先,那个函数是 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
参数是做什么的。
由于 as.character.ff
在内部使用默认值 as.character
工作,并且鉴于 df 向量可能比 RAM 大,数据需要分块处理。 chunk
函数促进了块的划分。在这种情况下,相关方法是 chunk.ff_vector
。默认情况下,这将通过将 getOption("ffbatchbytes")
除以记录大小来计算块大小。但是,可以通过使用 by
提供块大小来覆盖此行为。
在您给出的示例中,ff 向量将一次转换为 character
250000 个成员。
任何 by
或根本没有 by
的最终结果都是相同的。较大的值将导致更多的 RAM 临时使用,但可能会更快地运行。
在下面的post中,
aggregation using ffdfdply function in R
有这样一行
splitby <- as.character(data$Date, by = 250000)
出于好奇,我想知道 by
参数是什么意思。它似乎与 ff
数据框有关,但我不确定。 Google as.character
和 as.vector
的搜索和 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)
如果有人能告诉我它是什么,我将不胜感激。提前谢谢你。
首先,那个函数是 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
参数是做什么的。
由于 as.character.ff
在内部使用默认值 as.character
工作,并且鉴于 df 向量可能比 RAM 大,数据需要分块处理。 chunk
函数促进了块的划分。在这种情况下,相关方法是 chunk.ff_vector
。默认情况下,这将通过将 getOption("ffbatchbytes")
除以记录大小来计算块大小。但是,可以通过使用 by
提供块大小来覆盖此行为。
在您给出的示例中,ff 向量将一次转换为 character
250000 个成员。
任何 by
或根本没有 by
的最终结果都是相同的。较大的值将导致更多的 RAM 临时使用,但可能会更快地运行。