在data.table中按子集(.SD)应用功能并保存单独的文件

时间:2019-06-17 15:36:32

标签: r

我想通过子设置大文件来应用长代码

我有一个大数据集,我想应用一个长代码(在我的函数中翘曲),以一个子集(例如“州”)分别遍历代码,然后按州保存结果

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文件,并且在函数中创建了所有变量

0 个答案:

没有答案