R的总新手,刚刚花了几个小时玩,并且认为我可以玩一些NHANES数据集,例如ftp://ftp.cdc.gov/pub/Health_Statistics/NCHS/nhanes/2003-2004/
所以抓住了一对夫妇,在与merge(bmx_c, demo_c)
和一个快速Google玩游戏之后,我认为sqldf
库是一种更有效的方式来合并/从文件中提取几个列,进行游戏有,但我遇到了问题。
Error in match.fun(asfn) :
'c("as.labelled", "as.integer")' is not a function, character or symbol**
NHANES文件采用SAS格式,因此我不得不:
install.packages("Hmisc")
install.packages("sqldf")
library(Hmisc)
library(sqldf)
demo_c <- sasxport.get("DEMO_C.XPT")
bmx_c <- sasxport.get("BMX_C.XPT")
is.data.frame(demo_c)
[1] TRUE
sqldf("select seqn from demo_c")
Error in match.fun(asfn) :
'c("as.labelled", "as.integer")' is not a function, character or symbol
>
summary(demo_c$seqn)
Min. 1st Qu. Median Mean 3rd Qu. Max.
21000 23540 26070 26070 28600 31130
>
我猜测需要进行某种类型的转换,但我不知道R的细微之处。
答案 0 :(得分:4)
sqldf不支持Hmisc生成的%d
列类。所有列似乎都是整数或数字,因此首先将列转换为数字:
"labelled"
如果您愿意,可以将整数1转换为整数:
demo_c[] <- lapply(demo_c, as.numeric)
sqldf("select seqn from demo_c")