быстрое подмножество в R

У меня есть дата фрейма данных размером 30000 x 50. У меня также есть отдельный список, содержащий точки для группирования строк из этого фрейма данных, например,

rows <- list(c("34", "36", "39"), c("45", "46"))

Это говорит о том, что строки фрейма данных с именами строк (не числовыми индексами строк, а именами строк (dat)) "34", " 36, 39 составляют одну группу, а 45, 46 - другую группу.

Теперь я хочу вывести группы из фрейма данных в параллельный список, но мой код (ниже) действительно очень медленный. Как мне его ускорить?

> system.time(lapply(rows, function(r) {dat[r, ]}))
   user  system elapsed 
 246.09    0.01  247.23 

Это на очень быстром компьютере, R 2.14.1 x64.

7
задан Matt Dowle 28 March 2013 в 00:40
поделиться