我一直在使用REDCapR包从我的调查表单中读取数据。我一直在使用redcap_read读取数据,直到我意识到我需要在我的调查中的一个问题上添加一个字段限制。最初,它是一个简短的回答字段,询问用户他们有多少东西,人们正在做一些意想不到的恼人的事情,比如拼写数字或输入“几个”而不是数字。但所有这些数据都读取得很好。我将该字段更改为一个简短回答字段(与前面的类型相同),要求响应为整数,现在数据将不会使用redcap_read读取到R中。
当我运行时:
redcap_read(redcap_uri=uri, token=api_token)$data
我得到的错误消息是:
Column [name of my column] can't be converted from numeric to character
我还注意到,当我查看它在该列的第一个和第六个记录(都是零)中读取的数据时(从800+记录中读取),但其他所有记录都是NA。尝试从限制为整数的文本字段读取数据是否存在固有问题,或者是否有其他方法可以做到这一点?
编辑:它还可以很好地读取日期,这些日期是有日期字段限制的文本字段。这似乎非常特定于从文本字段中读取经过验证的数字。
我还尝试了redcapAPI::exportRecords,它将继续读取数据集的其余部分,但会读取具有测试限制的列中所有值的NA。
发布于 2020-01-19 00:59:26
将REDCapR升级到GitHub上的版本,该版本会在确定数据类型之前将批处理堆叠在一起(请参见#257)。
# install.packages("remotes") # Run this line if the 'remotes' package isn't installed already.
remotes::install_github(repo="OuhscBbmc/REDCapR")在您的示例中,我相信批处理(默认情况下为200条记录)包含不同的不同数据类型(根据错误消息,是字符和数字),它们不会静默地堆叠在一起。
然后,REDCapR::redcap_read()函数应该可以工作了。(如果没有,请创建一个新的issue)。
有两种替代方案
guess_max值调用redcap_read_oneshot,或guess_type = TRUE.https://stackoverflow.com/questions/59309974
复制相似问题