【问题标题】:R progress bar for reading multiple csv (tsv) files用于读取多个 csv (tsv) 文件的 R 进度条
【发布时间】:2018-06-13 13:36:28
【问题描述】:

有什么方法可以显示导入多个 csv 文件的进度条。 这是导入代码: 列出所有要导入的字段:

temp <- list.files(pattern="*\\.tsv$") 
temp

将导入特定列:

test_data <- lapply(temp,function(x){
  read.csv(file = x,
           sep ="\t",
           fill = TRUE,
           quote='', 
           header = FALSE 
  )[ ,c(287, 288, 289, 290, 291, 292, 293, 304, 370, 661, 662, 812, 813,994, 995, 1002)]
}
)

如何监控当前的进度状态? 我只是找到了一些关于循环的建议,但没有找到导入文件的建议

【问题讨论】:

  • readr 包中的 read_csv 会给你一个进度条。
  • 得到 read_csv 的错误消息:Fehler in readr::read_csv(file = x, sep = "\t", fill = TRUE, quote = "", : unbenutzte Argumente (unused argument) (sep = "\t",填充 = TRUE,标题 = FALSE)
  • read_csv 的参数不同,但看起来您找到了答案。

标签: r


【解决方案1】:

您可以使用progress 库实现此目的:

library(progress)                                                      # add
temp <- list.files(pattern="*\\.tsv$") 
pb <- progress_bar$new(format = " progress [:bar] :percent eta: :eta", # add
                       total = length(temp), clear = FALSE, width= 60) # add
test_data <- lapply(temp,function(x){
  pb$tick()                                                            # add
  read.csv(file = x,
           sep ="\t",
           fill = TRUE,
           quote='', 
           header = FALSE 
  )[ ,c(287, 288, 289, 290, 291, 292, 293, 304, 370, 661, 662, 812, 813,994, 995, 1002)]
})

我已经用# add 注释标记了您需要添加的行。还有一个原生的R 进度条可供您使用,但我发现progress 版本更具可读性、可配置性和易用性。

【讨论】:

  • 警告与您的语言环境有关,而不是与进度条有关,在您的情况下 temp 的长度是多少?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-14
  • 2016-06-14
  • 1970-01-01
相关资源
最近更新 更多