Как я могу записать части списка в один фрейм данных? - PullRequest
0 голосов
/ 18 сентября 2018

Я хочу написать один df с частотой 150 растровых объектов (частично ответил: Количество частот нескольких растровых объектов в R )

Я создал список всехрастровые файлы с

spatial.tools::list.raster.files() и затем с именем

lapply(ls$raster,freq)

Теперь у меня есть список, содержащий 150 записей, которые содержат матрицу freq для каждого растрового файла.

Меня интересует только $Band.1[,"count"]).Для единственной записи в списке я могу создать df для счетчиков с

as.data.frame(all[[1]]$Band.1[,"count"])

Мой вопрос: как я могу записать $Band.1[,"count"] для всех 150 в списке в один df за один раз????

1 Ответ

0 голосов
/ 18 сентября 2018

Я вижу, ты здесь новенький.Другим будет легче ответить на ваш вопрос, если вы сможете сделать свой вопрос воспроизводимым - прочитайте этот пост на , как сделать отличный воспроизводимый пример .Тем не менее, используя другой вопрос, это, вероятно, даст вам то, что вам нужно:

library(tidyverse)

list_of_results <- lapply(ls$raster,freq)

df_of_results <- 
  list_of_results %>%
  map_df(~ data.frame(.))

df_of_results$count

Если функции tidyverse и purrr::map вам не подходят, вы также можете сделать что-то вроде:

results <- unlist(lapply(list_of_results, function(x) x[, c("count")]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...