You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

raster包raster函数运行示例代码报错求助

问题:raster包raster函数创建对象时报错

近期使用raster包的raster()函数时出现异常,此前该函数运行正常。执行官方帮助文档中的示例代码:

library(raster)
# from scratch
r1 <- raster(nrows=108, ncols=21, xmn=0, xmx=10)

触发如下错误:

Error in (function (classes, fdef, mtable)  : 
  unable to find an inherited method for function ‘res’ for signature ‘"BasicRaster"’

已排查操作

  • 确认未加载其他包含raster()函数的包,但发现res()函数同时存在于terra和raster包中。
  • 尝试使用conflicted包设置terra为res()函数的优先包,代码如下:
conflicted::conflict_prefer(name = "res", winner = "terra")

会话信息

R version 4.3.1 (2023-06-16 ucrt)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 11 x64 (build 22631)

Matrix products: default


locale:
[1] LC_COLLATE=English_United States.utf8  LC_CTYPE=English_United States.utf8   
[3] LC_MONETARY=English_United States.utf8 LC_NUMERIC=C                           
[5] LC_TIME=English_United States.utf8    

time zone: America/Denver
tzcode source: internal

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base      

other attached packages:
 [1] reshape2_1.4.4    ggExtra_0.10.1    extrafont_0.19    readxl_1.4.3      cowplot_1.1.2    
 [6] raster_3.6-26     tidyr_1.3.0       vegan_2.6-4       lattice_0.21-8    permute_0.9-7    
[11] data.table_1.14.8 elevatr_0.99.0    stars_0.6-4       abind_1.4-5       sp_2.1-1         
[16] sf_1.0-14         dplyr_1.1.3       ggplot2_3.4.4    

loaded via a namespace (and not attached):
 [1] tidyselect_1.2.0   viridisLite_0.4.2  farver_2.1.1       fastmap_1.1.1      reshape_0.8.9     
 [6] promises_1.2.1     digest_0.6.33      mime_0.12          lifecycle_1.0.3    cluster_2.1.4     
[11] ellipsis_0.3.2     terra_1.7-55       magrittr_2.0.3     compiler_4.3.1     rlang_1.1.1       
[16] tools_4.3.1        utf8_1.2.3         yaml_2.3.7         knitr_1.45         FNN_1.1.4         
[21] labeling_0.4.3     bit_4.0.5          classInt_0.4-10    curl_5.1.0         plyr_1.8.9        
[26] KernSmooth_2.23-21 miniUI_0.1.1.1     withr_2.5.1        purrr_1.0.2        grid_4.3.1        
[31] fansi_1.0.5        xts_0.13.2         xtable_1.8-4       e1071_1.7-13       colorspace_2.1-0  
[36] progressr_0.14.0   extrafontdb_1.0    scales_1.2.1       MASS_7.3-60        cli_3.6.1         
[41] rmarkdown_2.25     crayon_1.5.2       intervals_0.15.4   generics_0.1.3     cachem_1.0.8      
[46] DBI_1.1.3          proxy_0.4-27       stringr_1.5.0      splines_4.3.1      parallel_4.3.1    
[51] cellranger_1.1.0   vctrs_0.6.4        Matrix_1.6-3       bit64_4.0.5        units_0.8-4       
[56] glue_1.6.2         codetools_0.2-19   gstat_2.1-1        stringi_1.7.12     gtable_0.3.4      
[61] later_1.3.1        munsell_0.5.0      tibble_3.2.1       pillar_1.9.0       htmltools_0.5.7   
[66] R6_2.5.1           conflicted_1.2.0   automap_1.1-9      evaluate_0.22      shiny_1.8.0       
[71] memoise_2.0.1      httpuv_1.6.12      class_7.3-22       Rcpp_1.0.11        nlme_3.1-163      
[76] Rttf2pt1_1.3.12    spacetime_1.3-1    mgcv_1.8-42        xfun_0.41          zoo_1.8-12        
[81] pkgconfig_2.0.3   

解决方案

1. 修正res函数优先级设置

错误根源是terra包的res()函数无法识别raster包的BasicRaster类,应将raster包的res()设为优先:

conflicted::conflict_prefer(name = "res", winner = "raster")

设置完成后重新执行raster()函数创建对象即可。

2. 升级相关包到最新版本

若上述方法无效,尝试升级raster和terra包到最新版,解决版本兼容性问题:

install.packages(c("raster", "terra"))

3. 临时指定raster包的res函数

在创建raster对象前,手动触发raster包的res方法加载,确保方法绑定正确:

# 先加载raster包的res方法
raster::res(raster())
# 再执行创建代码
r1 <- raster(nrows=108, ncols=21, xmn=0, xmx=10)

内容的提问来源于stack exchange,提问作者Nathan Tomczyk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 08:07:52