Возьмет следующий код:преобразования матрицы списков регулярной матрицы
foo <- list()
foo[[1]] <- list(a=1, b=2)
foo[[2]] <- list(a=11, b=22)
foo[[3]] <- list(a=111, b=222)
result <- do.call(rbind, foo)
result[,'a']
В этом случае result[,'a']
показывает список. Есть ли более элегантный способ, так что result
является «регулярной» матрицей векторов? Я предполагаю, что есть ручные способы обойти это, но мне было интересно, был ли очевидный шаг, который я отсутствовал.
Я желаю 'do.call' +' rbind' было быстро. Вы когда-нибудь пробовали использовать его с 10 000 кадров данных в списке ?! – hadley
@hadley: Кажется, я помню, как учился в классе статистики вычислений, что это был самый быстрый способ (после многих других неудачных попыток) связать списки. Возможно, я помню не то. Что быстрее? – Vince
Вы можете управлять примерно в 4 раза быстрее, если вы тщательно напишете его самостоятельно. 'rbind.fill' в следующем выпуске plyr будет включать мои последние лучшие усилия. – hadley