基于R语言的地理探测器实现与问题研究
由于本人近期需要用到地理探測器做實驗分析,以此記錄并學習。話不多說,先上代碼。
# 下載并導入包,用以讀取excel文件 install.packages("readxl") library(readxl) # 讀取excel文件 beibuwan <- read_excel("文件路徑") # 展示該文件 View(beibuwan) # 下載并導入GD包 #install.packages("GD") library(GD) # 數(shù)據(jù)離散方法 discmethod <- c("equal","natural","quantile","geometric") # 間斷點范圍 discitv <- c(3:10) # beibuwandata<-edit(beibuwan) # 連續(xù)型變量選擇,這里C的含義是除去導入文件的哪些列 # 值得注意的是,R語言索引從1開始 continuous_variable <- colnames(beibuwan)[-c(1,2,3,4,5,6,7,8,9,10,11,12,13,17)] continuous_variable # 直接調(diào)用GD中的gdm,其將根據(jù)最大q,選取上述discmethod,discitv中最優(yōu)值 testgdm <- gdm(Y ~ X13+X14+X15,continuous_variable = continuous_variable ,data = as.data.frame(beibuwandata),discmethod = discmethod, discitv = discitv) testgdm View(testgdm)運算一定時間后,4種類型直接在控制臺顯示。也可以進行視圖表達View(testgdm)
?
?問題及報錯部分:
1代碼沒有報錯,一直在計算不出結(jié)果,造成這一現(xiàn)象原因肯能是我們設置的離散方法中包含了“SD”類型,刪除這一類型再跑一次。
2.discitv賦值上一般從3開始,博主嘗試過小于三的間斷,報錯!
3.錯誤?Error in `[.data.frame`(x, r, vars, drop = drop) :undefined columns selected
修改方法,函數(shù)參數(shù)中 data=as.data.frame(你的數(shù)據(jù))
4.錯誤?Error in if (qv12 < min(qv1, qv2)) { :?missing value where TRUE/FALSE needed?
修改方法,嘗試在數(shù)據(jù)最后一列加上一個飛連續(xù)性變量
5.關(guān)于因變量與自變量,只需要對自變量進行離散化。王教授的文章及官網(wǎng)也對其進行了說明,大家可以去看一下。
6.博主應用IDE及R版本在這幾交代一下,IDE-RStudio,R Version-4.2.0? ? 大家可以自行下載,免費!免費!免費!重要的事情說三遍!
暫時就記錄這么多,這也是第一次寫博客哈,有問題大家多交流,不足地方大家指正哈!
我是Seven,歡迎大家交流GIS,RS等相關(guān)技術(shù)!
總結(jié)
以上是生活随笔為你收集整理的基于R语言的地理探测器实现与问题研究的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HP P2000 RAID-5两块盘离线
- 下一篇: Java学习笔记12——JVM入门