当使用as.data.frame处理多个图层时,对于合并图层,所有命名都是
lyr.1
。有没有更好的方法来解决这个命名问题?
library(terra)
m <- matrix(1:25, nrow=5, ncol=5)
rm <- rast(m)
n <- matrix(rep(5,time=25),nrow = 5,ncol = 5)
rn <- rast(n)
dt <- c(rm,rn)
data <- terra::as.data.frame(dt,xy=TRUE)
head(data)
> head(data)
x y lyr.1 lyr.1
1 0.5 4.5 1 5
2 1.5 4.5 6 5
3 2.5 4.5 11 5
4 3.5 4.5 16 5
5 4.5 4.5 21 5
6 0.5 3.5 2 5
是否可以将原始名称带入图层中(在示例中:
rm
和rn
)?
您可以使用
names<-
设置图层名称
您的数据
library(terra)
rm <- matrix(1:25, nrow=5, ncol=5) |> rast()
rn <- matrix(rep(5,time=25),nrow = 5,ncol = 5) |> rast()
dt <- c(rm, rn)
设置名称
names(dt) <- c("A", "B")
terra::as.data.frame(dt,xy=TRUE) |> head(2)
# x y A B
#1 0.5 4.5 1 5
#2 1.5 4.5 6 5
你也可以这样做
dt <- terra::rast(c(A=rm, B=rn))
terra::as.data.frame(dt,xy=TRUE) |> head(2)
# x y A B
#1 0.5 4.5 1 5
#2 1.5 4.5 6 5