- 数据截图见尾供参考-
你好,我是沿着this YouTube tutorial为NMDS和一切都进行得很顺利,直到我检查了描述,它说与r更新颜色/点将不会出现在图形上。
这是我的原始代码:
data_1<-rivers_catchement[,2:27]
data_2<-rivers_catchement[1]
library("vegan")
NMDS<-metaMDS(data_1, distance= "bray", k = 2)
shape=c(18,16)
co=c("seagreen4", "olivedrab","seagreen2", "cornflowerblue", "slateblue2", "royalblue4", "brown2", "tomato1", "sienna3", "gold1", "darkgoldenrod1", "yellow2")
shape=c(18,16)
plot(NMDS$points, col=co[data_2$Habitat], pch = shape[data_2$Habitat],
cex=1.2, main="Macroinvertebrate Assembleges Across the Two Sites", xlab = "axis 1", ylab= "axis 2")
有了这个,我能够得到一个图表与标签的网站,但我不能得到颜色和点。
我尝试了他的更新代码链接在视频的描述:
library("vegan")
library("ggplot2")
datascores <- as.data.frame(scores(NMDS))
scores <- cbind(as.data.frame(datascores), Habitat = data_2$Habitat)
centroids <- aggregate(cbind(NMDS1, NMDS2) ~ Habitat, data = scores, FUN = mean)
seg <- merge(scores, setNames(centroids, c('Habitat','oNMDS1','oNMDS2')),
by = 'Habitat', sort = FALSE)
ggplot(scores, aes(x = NMDS1, y = NMDS2, colour = Habitat)) +
geom_segment(data = seg,
mapping = aes(xend = oNMDS1, yend = oNMDS2)) +
geom_point(data = centroids, size = 4) +
geom_point() +
coord_fixed()+
theme_bw()+
theme(legend.position="right",legend.text=element_text(size=10),legend.direction='vertical')
然而-我得到这个错误消息,因为我有12行,但26列:
错误(函数(...,row.names = NULL,check.rows = FALSE,check.names = TRUE,:
参数意味着不同的行数:十二、二十六
我不认为改变数据的结构会起作用,因为我需要调用data_2来分离/颜色编码栖息地。
我已经附上了我目前的数据设置的截图。我还附上了data_1和data_2的截图。(见下文)
任何帮助将不胜感激,我尝试了其他Youtube教程/技术,但我觉得这一个我理解最多,最接近图形只需要修复长度问题的 Dataframe ,我认为。
screenshots of data
(https://i.stack.imgur.com/CalDJ.jpg)
(https://i.stack.imgur.com/JwU8b.png)
亲切的问候,罗西
1条答案
按热度按时间bvhaajcl1#
您请求了两种不同类型的分数列表:行的分数和列的分数。无法将此列表转换为数据框。如果你只想得到一种分数,你应该这样说:
scores(NMDS, display="site")
。错误消息可能来自as.data.frame()
命令,但我们不知道,因为您没有告诉我们哪个命令给了您错误消息。