我想用150个栅格对象的频率写一个df (部分回答: Count freq of multiple raster objects in R)
我创建了所有光栅文件的列表
spatial.tools::list.raster.files()
然后叫
lapply(ls$raster,freq)
现在,我有一个列表,其中包含150个条目,每个条目都包含一个频率矩阵。
但是,我只对$Band.1[,"count"])
感兴趣。
对于列表的单个条目,我可以使用
as.data.frame(all[[1]]$Band.1[,"count"])
我的问题是:
如何将列表中的全部150个$Band.1[,"count"]
一次性写入一个df中?
答案 0 :(得分:0)
我看到你是新来的。如果您可以使问题重现,则其他人将可以更轻松地回答您的问题-在how to make a great reproducible example上查看此信息。话虽这么说,使用另一个问题,这可能会为您带来所需的东西:
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")]))