Преобразование списка из поля данных в фрейм данных - PullRequest
0 голосов
/ 11 июня 2018

У меня проблемы с преобразованием моих списков из поля данных во фрейм данных.Мой окончательный вывод, хх, близок к тому, что я ищу, но не совсем.Прямо сейчас это 2 наблюдения 10 переменных.Каждое наблюдение представляет собой список из 280, но я хотел бы, чтобы мой окончательный кадр данных состоял из 560 наблюдений по 10 переменным, поэтому просто списки расширялись и накладывались друг на друга.Я ценю любую помощь.

cid_station=data.frame(cid=1:280,station=sample(1:10,size=280,replace=T))

cid=unique(cid_station$cid)

july = rbind(cid_station[rep(1:280,450),])
july$resid=rnorm(n=nrow(july))

w1=data.frame(station=sample(1:10,size=2400,replace=T),
                   kwhhat=rnorm(n=2400,mean=50,sd=10), year=1)
w2=data.frame(station=sample(1:10,size=2400,replace=T),
              kwhhat=rnorm(n=2400,mean=500,sd=10), year=2)
weather= rbind(w1,w2)

iteration=(1:10)
year=(1:2)


x=lapply(iteration,function(z){

  i=lapply(year,function(yr){
    subset_y=weather[weather$year==yr,]

      peaks=lapply(cid,function(id){
            subset_r=july[july$cid==id,"resid"]
            subset_s=unique(july[july$cid==id,"station"])
            subset_w=subset_y[subset_y$station==subset_s,]
            subset_w$resid=sample(subset_r,size=nrow(subset_w),replace=T)
            subset_w$kw=subset_w$kwhhat+subset_w$resid
            peak=max(subset_w$kw)
          })
      })
  })

xx=as.data.frame(do.call(cbind, x))

1 Ответ

0 голосов
/ 11 июня 2018

Я чувствую, что в вашем коде может быть возможна некоторая оптимизация, но я не совсем понимаю, что вы пытаетесь сделать.Тем не менее, функция map_dfc в пакете purrr должна получить именно то, что вы хотите.

xx <- map_dfc(x, unlist)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...