R 如何将进度条添加到data.table括号内执行的聚合/重新分配中?

R 如何将进度条添加到data.table括号内执行的聚合/重新分配中?,r,csv,progress-bar,data.table,R,Csv,Progress Bar,Data.table,我正在编写一个脚本,用于将大型.csv文件读入单个大型data.table,以执行清理和聚合。使用data.table格式聚合和读取列as.POSIXct非常好。尽管如此,许多处理过程都需要时间。我想在这些聚合/重新分配中添加进度条 我的剧本: library(data.table) files_in <- choose.files() temp <- lapply(files_in, function(x) fread(x, skip = 4)) big_table <-

我正在编写一个脚本,用于将大型.csv文件读入单个大型data.table,以执行清理和聚合。使用data.table格式聚合和读取列
as.POSIXct
非常好。尽管如此,许多处理过程都需要时间。我想在这些聚合/重新分配中添加进度条

我的剧本:

library(data.table)

files_in <- choose.files()
temp <- lapply(files_in, function(x) fread(x, skip = 4))
big_table <- rbindlist(temp)
headers <- c("TIMESTAMP","RECORD","CO2","H2O",Solenoid","AvgCO2In","AVGH2OIn",
             "AvgCO2Out","AvgH2OOut","QIn_Avg","AirTempIN","AirTempOUT")
colnames(big_table) <- headers
big_table <- unique(big_table)
big_table <- big_table[order(RECORD)]
for(i in big_table) {
  big_table[, TIMESTAMP := as.POSIXct(TIMESTAMP, format = "%m/%d/%Y %H:%M")]
  setTxtProgressBar(txtProgressBar(min = 0, max = 1, style = 3), i)}
但这行不通。它给出以下错误消息:

 Error in rep.int(char, nb) : invalid 'times' value
我还放弃了for循环并尝试了以下方法:

setTxtProgressBar(txtProgressBar(min = 0, max = 1, style = 3), 
big_table[, TIMESTAMP := as.POSIXct(TIMESTAMP, format = "%m/%d/%Y %H:%M")])
它不起作用。我还需要执行其他几个后续聚合,例如:

big_file_minute <- big_file[, lapply( .SD, mean), by = TIMESTAMP] 

big_file_minute Try set而不是:=for assignment in a loop,如果package anytime在解析时更快,请尝试使用它。@Roland在优化此脚本时,我会记住这一点。目前,我的计划是将我打算实现的大部分数据清理过程放在一个for循环中,并在整个过程中附加一个进度条。我还应该提到,我不想循环。我就是不知道如何在没有迭代的情况下将进度条附加到某个东西上。在data.table结构中使用
:=
lappy
对我来说非常快。我会专注于提高性能,而不是实现进度条。但是,
lappy
是一个循环,应该可以在其中实现一个进度条。
big_file_minute <- big_file[, lapply( .SD, mean), by = TIMESTAMP]