[R]GD包进行地理探测器因子分析

Rmarkdown
```{r setup, include=FALSE}
knitr::opts_chunk$set(include = FALSE, warning = FALSE)
```

```{r cars}
## install and library the pacakge
#install.packages("GD")
library("GD")
library(tidyverse)
library(openxlsx)

# set road
setwd("C:/Users/mingxu/Desktop")
getwd()

#read data
cdata <- read.xlsx("zhizi.xlsx", 1)
pdata <- read.xlsx("zhizi.xlsx", 2)
gdata <- read.xlsx("zhizi.xlsx", 3)
```
#deal continuous variables in cdata
```{r}
## multiple variables including continuous variables
discmethod <- c("equal","natural","quantile","geometric","sd")
discitv <- c(3:6)

#deal continuous variables in cdata
data.continuous <- cdata[, c(1:5)]
odc1 <- optidisc(Crocetin ~ ., data = data.continuous, discmethod, discitv) 
data.continuous <- do.call(cbind, lapply(1:4, function(x)
  data.frame(cut(data.continuous[, 2:5][, x], unique(odc1[[x]]$itv), include.lowest = TRUE))))
cdata[, c(2:5)] <- data.continuous

#deal continuous variables in pdata
data.continuous <- pdata[, c(1:5)]
odc1 <- optidisc(pi ~ ., data = data.continuous, discmethod, discitv) 
data.continuous <- do.call(cbind, lapply(1:4, function(x)
  data.frame(cut(data.continuous[, 2:5][, x], unique(odc1[[x]]$itv), include.lowest = TRUE))))
pdata[, c(2:5)] <- data.continuous

#deal continuous variables in gdata
data.continuous <- gdata[, c(1:5)]
odc1 <- optidisc(gy ~ ., data = data.continuous, discmethod, discitv) 
data.continuous <- do.call(cbind, lapply(1:4, function(x)
  data.frame(cut(data.continuous[, 2:5][, x], unique(odc1[[x]]$itv), include.lowest = TRUE))))
gdata[, c(2:5)] <- data.continuous
```

#factor detector 
```{r}
gc <- gd(Crocetin ~ ., data = cdata)
gp <- gd(pi ~ ., data = pdata)
gg <- gd(gy ~ ., data = gdata)
gc
gp
gg
```

#output excel
```{r}
library(writexl)
write_xlsx(gc, "gc.xlsx")
write_xlsx(gp, "gp.xlsx")
write_xlsx(gg, "gg.xlsx")
```

# output eps
```{r}
#gc
postscript("gc.eps", width = 8, height = 6)
plot(gc, sig = FALSE)
dev.off()

#gp
postscript("gp.eps", width = 8, height = 6)
plot(gp, sig = FALSE)
dev.off()

#gg
postscript("gg.eps", width = 8, height = 6)
plot(gg, sig = FALSE)
dev.off()
```
Posted in R

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注