如何使用素食包绘制物种编号(specnumber()-函数)?
How do I plot species number (specnumber()-function) with vegan package?
我有两个数据框,构造如下:
env <- read.csv("ud_area.csv", header = T, sep = ";", row.names = 1)
com <- read.csv("com_1.csv", header = T, sep = ";", row.names = 1)
结构如下:
str(env)
**data.frame': 4 obs. of 1 variable:
$ Area: chr "BeetleBank" "BeetleBank" "Klee" "Klee"**
str(com)
**'data.frame': 4 obs. of 121 variables:**
**$ MT.1 : int 0 57 0 0**
**$ MT.2 : int 0 1 0 3**
**$ MT.3 : int 0 26 0 0** and so on...
然后我想调用并绘制 vegan 包中包含的 specnumber() 函数:
S<-specnumber(com)
plot(S ~ env$Area, ylab = "y", xlab = "x", ylim=c(0, 20), xlim=c(0,100))
我总是收到以下错误:强制引入的 NA。
我多次控制NA的数据,对我来说没有意义。此外,当我几个月前 运行 脚本和其他数据时,我没有遇到任何问题。现在,它也不适用于旧数据。这怎么可能?
区域应该是
的一个因素
plot(S ~ env$Area, ylab = "y", xlab = "x", ylim=c(0, 20), xlim=c(0,100))
但它是一个字符串。以下应该有效
plot(S ~ as.factor(env$Area), ylab = "y", xlab = "x", ylim=c(0, 20), xlim=c(0,100))
这是R 4 中的一个难以理解的变化,它引起了很多痛苦:早期的R 自动将字符串转换为因子,但是从版本 4 开始,它们就变成了字符串,许多统计函数不知道如何处理它们。
要保持 R 中的 pre-4 行为,您应该使用命令读取数据:
env <- read.csv("ud_area.csv", header = T, sep = ";", row.names = 1, stringsAsFactors = TRUE)
我有两个数据框,构造如下:
env <- read.csv("ud_area.csv", header = T, sep = ";", row.names = 1)
com <- read.csv("com_1.csv", header = T, sep = ";", row.names = 1)
结构如下:
str(env)
**data.frame': 4 obs. of 1 variable:
$ Area: chr "BeetleBank" "BeetleBank" "Klee" "Klee"**
str(com)
**'data.frame': 4 obs. of 121 variables:**
**$ MT.1 : int 0 57 0 0**
**$ MT.2 : int 0 1 0 3**
**$ MT.3 : int 0 26 0 0** and so on...
然后我想调用并绘制 vegan 包中包含的 specnumber() 函数:
S<-specnumber(com)
plot(S ~ env$Area, ylab = "y", xlab = "x", ylim=c(0, 20), xlim=c(0,100))
我总是收到以下错误:强制引入的 NA。
我多次控制NA的数据,对我来说没有意义。此外,当我几个月前 运行 脚本和其他数据时,我没有遇到任何问题。现在,它也不适用于旧数据。这怎么可能?
区域应该是
的一个因素plot(S ~ env$Area, ylab = "y", xlab = "x", ylim=c(0, 20), xlim=c(0,100))
但它是一个字符串。以下应该有效
plot(S ~ as.factor(env$Area), ylab = "y", xlab = "x", ylim=c(0, 20), xlim=c(0,100))
这是R 4 中的一个难以理解的变化,它引起了很多痛苦:早期的R 自动将字符串转换为因子,但是从版本 4 开始,它们就变成了字符串,许多统计函数不知道如何处理它们。
要保持 R 中的 pre-4 行为,您应该使用命令读取数据:
env <- read.csv("ud_area.csv", header = T, sep = ";", row.names = 1, stringsAsFactors = TRUE)