R语言raster包设置图层名称出现incorrect number of layer names错误求助
错误成因分析:incorrect number of layer names
你的R代码:
library(raster) wc25 <- stack(list.files(path="../Rhaebo/Bio_PresWC1.4/", pattern = "\\.asc$", full.names = TRUE)) names(wc25) <- c("bio1","bio4", "bio8", "bio9","bio10", "bio11", "bio12", "bio13", "bio14", "bio15", "bio16", "bio17", "bio18", "bio19")
运行时触发的错误:
Error in `names<-`(`*tmp*`, value = c("bio1", "bio4", "bio8", "bio9", : incorrect number of layer names
错误核心成因
你为wc25指定的命名向量长度,和stack()实际读取到的栅格图层数量不匹配:
- 你定义的命名向量包含14个元素(从
bio1到bio19共14个名称) - 但
list.files()返回的.asc文件数量不是14个,导致wc25的图层数和命名数不一致
具体排查方向
- 运行
nlayers(wc25)查看wc25实际的图层数量,和你写的命名数量对比 - 单独执行
list.files(path="../Rhaebo/Bio_PresWC1.4/", pattern = "\\.asc$", full.names = TRUE),检查返回的文件列表:- 确认文件总数是否为14个
- 检查是否有多余的
.asc文件被误读,或者目标文件缺失 - 注意
pattern = "\\.asc$"是区分大小写的,如果文件后缀是.ASC会被忽略,可改成pattern = "\\.[Aa][Ss][Cc]$"解决大小写问题
内容的提问来源于stack exchange,提问作者Cristhian Peralta
相关产品推荐
相关产品推荐

