微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用素食包绘制物种编号specnumber()-function?

如何解决如何使用素食包绘制物种编号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 举报,一经查实,本站将立刻删除。