【发布时间】:2014-12-23 18:41:48
【问题描述】:
在尝试使用 speedglm 包的 shglm 功能时,我遇到了问题。由于文件太大而无法读入内存,我想使用包帮助页面中概述的链接功能。链接功能是
make.data<-function(filename, chunksize,...){
conn<-NULL
function(reset=FALSE){
if(reset){
if(!is.null(conn)) close(conn)
conn<<-file(filename,open="r")
} else{
rval<-read.table(conn, nrows=chunksize,...)
if ((nrow(rval)==0)) {
close(conn)
conn<<-NULL
rval<-NULL
}
return(rval)
}
} }
load(ti.RData)
然后我将我的数据帧(称为 ti)写入表格
write.table(ti,"data1.txt",row.names=FALSE,col.names=FALSE)
就像这里的例子http://www.inside-r.org/packages/cran/speedglm/docs/shglm。之后
da<-make.data("data1.txt",chunksize=10000,col.names=colnames(ti))
rm(ti)
b1<-shglm(T2D~factor(SIBCO)+factor(POCOD),datafun=da,family=binomial())
但我得到一个错误
Error in dev.resids(y, mu, weights) :
argument mu must be a numeric vector of length 1 or length 802
我很高兴上传我的数据集,但有人可以大致告诉我从哪里开始调试吗?我认为当通过链接函数(使用 read.table)读取 data1.txt 时,原始数据框中的某些因素是通过此操作转换为整数的。这就是我将因素放在变量周围的原因。任何建议都会很有帮助
【问题讨论】: