Error: `callback` must have two or more arguments - readr
Error: `callback` must have two or more arguments - readr
我正在尝试通过 R 创建 sqlite 数据库。(它看起来不是很方便,但应该可以。)
我正在使用 readr 和 dplyr 包。由于我有庞大的数据集,我试图通过 read_delim_chunked 拆分数据集,并调用我写的回调函数:
modifier<-function(chunk){
result<-cbind(chunk %>%
filter(X1=="T") %>%
select(X2) %>% transmute(date=parse_date_time2(X2, orders = "%Y-%m-%d %H:%M:%S")),
chunk %>%
filter(X1=="U") %>%
select(X2) %>% transmute(str_sub(X2, 20)),
chunk %>%
filter(X1=="W")%>%
select(X2))
names(result)<-c("time", "user", "tweet")
db_insert_into(con=my_db$con, table="my_fav_table", values=result)
}
但是,当调用 read_delim_chunked 时:
read_delim_chunked(file="/datadrive/tweets2009-07.txt",
chunk_size = 99999,
callback = modifier,
delim = "\t",
escape_double = FALSE,
col_names = FALSE,
trim_ws = TRUE,
skip = 1)
我收到这个奇怪的错误:
Error: callback
must have two or more arguments
传递给第二个参数的是什么,它需要在那里?
谢谢
回调默认为 class 称为 SideEffectChunkCallback。这个 class 包含一个名为 receive 的函数,每次读入一个块时都会调用它。这是函数定义 (Git):
receive = function(data, index) {
result <- private$callback(data, index)
private$cancel <- identical(result, FALSE)
}
它被这样调用(Git)
R6method(callback, "receive")(out, pos);
其中 out 是当前数据帧块,pos 是文件中当前块开始的行号。我不确定他们为什么将索引传回(未使用)并强制您的回调函数为其设置参数。我只是像这样在我的回调函数中添加了一个虚拟变量,效果很好。
myCallBackFunction <- function(dfChunk, dummyVar){
我正在尝试通过 R 创建 sqlite 数据库。(它看起来不是很方便,但应该可以。)
我正在使用 readr 和 dplyr 包。由于我有庞大的数据集,我试图通过 read_delim_chunked 拆分数据集,并调用我写的回调函数:
modifier<-function(chunk){
result<-cbind(chunk %>%
filter(X1=="T") %>%
select(X2) %>% transmute(date=parse_date_time2(X2, orders = "%Y-%m-%d %H:%M:%S")),
chunk %>%
filter(X1=="U") %>%
select(X2) %>% transmute(str_sub(X2, 20)),
chunk %>%
filter(X1=="W")%>%
select(X2))
names(result)<-c("time", "user", "tweet")
db_insert_into(con=my_db$con, table="my_fav_table", values=result)
}
但是,当调用 read_delim_chunked 时:
read_delim_chunked(file="/datadrive/tweets2009-07.txt",
chunk_size = 99999,
callback = modifier,
delim = "\t",
escape_double = FALSE,
col_names = FALSE,
trim_ws = TRUE,
skip = 1)
我收到这个奇怪的错误:
Error:
callback
must have two or more arguments
传递给第二个参数的是什么,它需要在那里?
谢谢
回调默认为 class 称为 SideEffectChunkCallback。这个 class 包含一个名为 receive 的函数,每次读入一个块时都会调用它。这是函数定义 (Git):
receive = function(data, index) {
result <- private$callback(data, index)
private$cancel <- identical(result, FALSE)
}
它被这样调用(Git)
R6method(callback, "receive")(out, pos);
其中 out 是当前数据帧块,pos 是文件中当前块开始的行号。我不确定他们为什么将索引传回(未使用)并强制您的回调函数为其设置参数。我只是像这样在我的回调函数中添加了一个虚拟变量,效果很好。
myCallBackFunction <- function(dfChunk, dummyVar){