R 如何将堆栈中的光栅图层组合到数据帧中

R 如何将堆栈中的光栅图层组合到数据帧中,r,stack,dataframe,R,Stack,Dataframe,我有一堆锉刀 s<-stack(list of ASCI files) 在单个光栅上执行此操作时,例如 df<-as.data.frame(s[[1]]) df要将函数应用于列表的每个元素,应用族命令非常有用: lapply( s, as.data.frame ) 返回data.frames的列表 若要将其仅限于所需的元素,只需事先将其子集到较小的列表中即可 s_small <- s[c(1,2,3,5)] lapply( s_small, as.data.frame

我有一堆锉刀

s<-stack(list of ASCI files)
在单个光栅上执行此操作时,例如

df<-as.data.frame(s[[1]])

df要将函数应用于列表的每个元素,应用族命令非常有用:

lapply( s, as.data.frame ) 
返回data.frames的列表

若要将其仅限于所需的元素,只需事先将其子集到较小的列表中即可

s_small <- s[c(1,2,3,5)]
lapply( s_small, as.data.frame ) 
s_small或使用

data.frame( rasterToPoints( s ) )

删除以后不需要的列。

谢谢,但我不是一次转换所有元素,我只是基于变量转换元素。@user4050解决方案是一样的——只是
lappy
一个只包含所需元素的列表(参见上面的示例)。谢谢您的回答。我仍然不明白为什么不能将as.data.frame与c结合使用。@user4050看看
c
cbind
、和
rbind
之间的区别。我不确定这是否按我想要的方式工作。我得到了这个长度类模式[1,]3 data.frame list[2,]3 data.frame list[3,]3 data.frame list[4,]3 data.frame list[5,]3 data.frame list[5,]3 data.frame list,但是我想要一个数据帧,其中包含:y,x,raster1,raster2等列。我在这里得到一个错误,我是这样使用它的test@user4050很抱歉尝试
data.frame
而不是
as.data.frame
我尝试了,但仍然得到了一个数据帧列表。我不知道这个结构长度类模式[1,]16806-none-numeric[2,]16806-none-numeric[3,]16806-none-numeric[4,]16551-none-numeric[5,]29400-none-numeric如果我单独做一层,你建议的函数可以工作。
s_small <- s[c(1,2,3,5)]
lapply( s_small, as.data.frame ) 
data.frame( rasterToPoints( s ) )