【发布时间】:2023-05-21 11:10:01
【问题描述】:
require(RCurl)
RAW.API <- postForm(REDcap.URL, token=Redcap.token, content="record",
type="flat", format="csv", rawOrLabel="Label",
.opts=curlOptions(ssl.verifypeer=TRUE, cainfo=REDCap.crt,
verbose=FALSE))
data <- read.table(file = textConnection(RAW.API), header = TRUE,
sep = ",", na.strings = "", stringsAsFactors = FALSE)
我正在使用此类代码将数据从 Redcap 提取到 R。问题是在处理我的案例 >19,000 条记录的大型数据集时,它需要花费大量时间,甚至有时会中止。有没有办法增强上面的代码,或者可以用日期对数据进行子集化。
【问题讨论】:
-
您的示例代码不足以作为reproducible 示例,因为缺少重要变量,我们无法运行相同的代码。我不清楚您是说问题出在http下载还是只是创建data.frame。在读入数据之前不能在 R 中进行过滤;如果您想减少返回的记录数量,请查看您的 Redcap API 是否具有过滤选项。如果没有可重复的示例,我们无法为您提供很多帮助。
-
在these slides 中有很多关于与REDCap 接口的信息您是否尝试切换到
httr并使用verbose()选项?由于它是RCurl之上的一层,因此它具有您需要的所有选项,并且可能更易于调试。另外,您是否从命令行curl尝试过相同的postForm? (该幻灯片链接上的示例) -
还有一个redcapAPI 包,它可能完全解决你所有的问题。