如何解决如何使用素食包绘制物种编号specnumber()-function?
我有两个数据框,构造如下:
env <- read.csv("ud_area.csv",header = T,sep = ";",row.names = 1)
com <- read.csv("com_1.csv",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))
我总是收到以下错误:强制引入的 NAs。
我多次控制 NA 的数据,这对我来说没有意义。此外,当我几个月前使用其他数据运行脚本时,我没有遇到任何问题。现在,它也不适用于旧数据。这怎么可能?
解决方法
面积应该是一个因素
plot(S ~ env$Area,ylab = "y",xlab = "x",ylim=c(0,20),xlim=c(0,100))
但它是一个字符串。以下应该工作
plot(S ~ as.factor(env$Area),100))
这是 R 4 中一个难以理解的变化,导致了很多痛苦:早期的 R 自动将字符串转换为因子,但从版本 4 开始,它把它们保留为字符字符串,许多统计函数不知道如何处理它们。
要保持 R 中的 pre-4 行为,您应该使用命令读取数据:
env <- read.csv("ud_area.csv",header = T,sep = ";",row.names = 1,stringsAsFactors = TRUE)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。