最近要分析FDA的MAUDE数据库,已知数据格式为txt,约有321万条观测,75个变量。数据库下载地址为
http://www.accessdata.fda.gov/MAUDE/ftparea/mdrfoithru2013.zip (因为解压后的文件达1G,无法以附件形式提供)。下载页面(
http://www.fda.gov/MedicalDevice ... vents/ucm127891.htm, “
MDRFOI file contains following 75 fields, delimited by pipe (|), one record per line”此行以下)有对75个变量的简单描述,但不涉及格式(数值或字符、变量长度等)。变量间以“
|”分隔。
使用如下语句导入:
在导入过程中log中提示:
非常非常多行类似的注意,以致log中都显示不了全部(首次出现提示的变量是
Event Location,后面还有若干其他变量有相同提示)。最后会提示导入失败,但实际上库里有sas数据存在并可打开查看,观测数和下载页面说明的3216352相近,有十几条出入。
在对某些变量如Remedial Action进行分析时,发现了问题。按照下载页面说明,此变量值分为RC、RP、RL、RB、OT、NO、IN、PM、MA、*等几种,但统计出的频数表分类却不是这几种,说明读入的数据库值有误。
我自己猜测log中的提示是因为某些变量值过长,读入的时候被截断了。
搜索了论坛中相关的帖子,如
https://bbs.pinggu.org/thread-1214883-1-1.html,提供解决方法为导入后利用log中的代码,修改
informat 及format的长度。但在这里不太可行,因为不知道每个变量的长度究竟是多少。
后来查了sas base guideline,知道proc import有个选项guessingrows=,可以指定要扫描的观测行数,能避免长值被截断,不过SAS9.2里好像guessingrows选项最大值只能到32767(貌似9.3支持到2147483647,但现在我用的还是9.2)。
希望各位老师和同仁能指点一二,log的提示是否是因为长度的关系?有没有比较方便的解决方法?