0

我最近遇到了一个奇怪的问题,相同的 read.dta13 命令在一个脚本中花费了一个小时,而在另一个脚本中花费了 2 分钟。我已经将脚本删减到最简单的部分并隔离了问题。

library('dplyr')
library('readstata13')

ptm <- proc.time()
OPCS4_data=read.dta13("FILENAME",select.cols=c('A','B','C'))
proc.time() - ptm

运行大约需要 2 分钟(根据 proc.time() 需要 130 秒)。它有 500,000 行和 200 列,我可以接受 2 分钟。但是,如果我只是通过 tcltk 添加密码,即

library('dplyr')
library('readstata13')

library(tcltk)
pwd <- .rs.askForPassword("Database Password:")

ptm <- proc.time()
OPCS4_data=read.dta13("FILENAME",select.cols=c('A','B','C'))
proc.time() - ptm

然后需要40分钟。为什么指定密码会使 read.dta13 命令花费 30 倍的时间?密码被用于 MySQL 连接,所以我可以先执行 read.dta13,但很奇怪,简单地将密码存储到 pwd 会导致 read.13 花费这么长时间。有人对为什么会发生这种情况有任何解释吗?

4

0 回答 0