объединение списков в списки через отметку времени - PullRequest
2 голосов
/ 08 августа 2011

Я просил об этом в R-help неделю назад, пока ответа нет ... У меня есть несколько data.frames данных gps и температуры в списке. Один data.frame выглядит так:

GPS:

       date     time     x.lat     x.lon   
1      22.05.11 13:50:37 53.57908 10.034599 
2      22.05.11 13:50:38 53.57906 10.034633 

Температура:

        date     time     temp
1      22.05.11 13:50:38 21.6120
2      22.05.11 13:50:39 21.6070

Итак, у меня есть два списка, один с несколькими gps-data.frames и один с несколькими временными dataframes. Я использовал lapply для манипулирования обоими списками, но не могу объединить temp и gps в один большой список, содержащий все data.frames, только для временных меток, которые существуют в обоих списках, как в приведенном выше примере, только 13:50:38 существует в обоих:

GPS + температура:

       date     time    x.lat     x.lon     temp
1      22.05.11 13:50:38 53.57906 10.034633 21.6070

Для отдельных фреймов данных, которые отлично работали с:

both <- merge(gps,temp)

Для двух списков data.frames я сначала попробовал lapply для обоих списков ... что-то вроде

both <- lapply(temp, gps, function(x){x <- merge(x);x})

Тогда я попробовал это с

both <- merge.list(gps,temp)

но это тоже не работает. Он просто передает первый список "gps" обоим

1 Ответ

3 голосов
/ 08 августа 2011

Попробуйте Map:

> Map(merge, GPS, temp)
[[1]]
      date     time    x.lat    x.lon   temp
1 22.05.11 13:50:38 53.57906 10.03463 21.612

или просто позвоните mapply, как Map делает:

> mapply(merge, GPS, temp, SIMPLIFY=FALSE)
[[1]]
      date     time    x.lat    x.lon   temp
1 22.05.11 13:50:38 53.57906 10.03463 21.612
...