回复 第30楼 的 zjk0507:貌似更烦了,不过还是能达到效果:
<br />
trans2 <- function(filepath="E:/SAS data",outpath="E:/Rdata"){<br />
setwd(filepath)<br />
a1 <- list.files(pattern="*.csv")<br />
Rdata1=Rdata2=list()<br />
for (i in a1) {<br />
Rdata1[[i]] <- subset(read.csv(paste(c(filepath,"/",i),collapse='')),d==1)<br />
Rdata2[[i]] <- subset(read.csv(paste(c(filepath,"/",i),collapse='')),d==0)<br />
#print(Rdata1)<br />
}</p>
<p> for(i in seq_along(a1)){<br />
Rdata <- NULL<br />
impnum <- length(read.csv(paste(c(filepath,"/",a1[i]),collapse=''))[,1])<br />
Rdata.out <- amelia(x=Rdata1[[i]],m=5,p2s=0,startvals=0,logs="y",<br />
idvars = c("rho", "nu","Rnum","y0","d0","c","d","y1","rind"))<br />
for(j in 1:5){<br />
Rdata <- rbind(Rdata,cbind("imputation number"=rep(j,impnum),rbind(Rdata2[[i]],Rdata.out[[1]][[j]])))<br />
}<br />
write.csv(Rdata,file=paste(c(outpath,"/T-final",i,".csv"),collapse=''),<br />
row.names=F)<br />
}<br />
}<br />
[s:11]
改过了,直接在write.csv中加入outpath就好了。
</p>