我想通过子设置大文件来应用长代码
我有一个大数据集,我想应用一个长代码(在我的函数中翘曲),以一个子集(例如“州”)分别遍历代码,然后按州保存结果
dat <- as.data.table(data)
my_function <- function(dat){
dat$delta<-dat$high-dat$low
dat$deltaby20<-I(dat$delta/20)
varnames = paste0('INC',seq(1,20,1))
for (i in 1:20){
dat$tempvar = dat$low+ dat$deltaby20*i
names(dat)[names(dat) == 'tempvar'] = varnames[i]}
dat$seqvar = seq(1:nrow(dat)) # set a sequence of observations
dat<- dat%>% gather(INC, INC_Value, INC1:INC20)
pred.dat<-predict(mod1$gam, type = "response", dat, se=T)
dat<-cbind(dat, pred.dat)
dat$pi_delta<-dat$fit*dat$deltaby20
dat<-dat%>%
group_by(seqvar,State) %>%
summarise(Sum_pi_delta=sum(pi_delta,na.rm=T),
Lat=mean(Lat,na.rm=T),
Lon=mean(Lon,na.rm=T))
dat$deaths<dat$Sum_pi_delta*5
return(dat)
saveRDS(dat), paste0(dat, ".Rds"))
}
newdat <- dat[, my_function(.SD), by = State]
对于每个州,我的预期结果将是不同的.rds文件,并且在函数中创建了所有变量