R 应用光栅功能';级别';列表中

R 应用光栅功能';级别';列表中,r,list,mapply,R,List,Mapply,我正在尝试使用光栅包中的“levels”函数为一组光栅生成属性表。我的所有光栅都在一个列表中,它们对应的属性表作为数据帧在一个单独的列表中。我找不到一种方法可以获取列表中的第一个光栅,为它提供dfs列表中第一个df的属性 require(raster) ## Generate test rasters with values rast1<-raster(ncol=10, nrow=10, xmn=0, xmx=10, ymn=0, ymx=10) values(rast1)<-

我正在尝试使用光栅包中的“levels”函数为一组光栅生成属性表。我的所有光栅都在一个列表中,它们对应的属性表作为数据帧在一个单独的列表中。我找不到一种方法可以获取列表中的第一个光栅,为它提供dfs列表中第一个df的属性

require(raster)

## Generate test rasters with values
rast1<-raster(ncol=10, nrow=10, xmn=0, xmx=10, ymn=0, ymx=10)
  values(rast1)<-round(runif(100,1,4))
rast2<-raster(ncol=11, nrow=10, xmn=0, xmx=10, ymn=0, ymx=10)
  values(rast2)<-round(runif(110,1,4))

 testrastlist<-list(rast1, rast2)

## Generate test data frames for attribute tables
df1<-data.frame('ID'=c(1,2,3,4),'a'=c(1,2,3,4), 'b'=c(1,2,3,4),     'c'=c(1,2,3,4))
df2<-    data.frame('ID'=c(1,2,3,4),'d'=c(5,6,7,8),'e'=c(5,6,7,8),'f'=c(5,6,7,8))
 testdflist<-list(df1,df2)

Map(function(rast,df){levels(rast)@alistaire,完美的解决方案。正是我所需要的。我就快到了,但没能把它做好。谢谢。
levels(testrastlist)<-testdflist
#This works
levels(rast1)<-df1
# As does this
levels(testrastlist[[1]]<-testdflist[[1]]
mapply(function(X,Y) {
  lapply(1:10, function(row) cor(X[row,], Y[row,]))
}, X=listA, Y=listB)