首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Select参数不适用于cca对象

Select参数不适用于cca对象
EN

Stack Overflow用户
提问于 2022-03-04 14:24:00
回答 2查看 68关注 0票数 0

我在素食者中创建了一个班级cca的对象,现在我正在尝试整理triplot。但是,我似乎不能使用select参数只显示指定的项。我的代码如下所示:

代码语言:javascript
复制
data("varechem")
data("varespec")
ord <- cca(varespec ~ Al+S, varechem)
plot(ord, type = "n")
text(ord, display = "sites", select = c("18", "21"))

我只希望两个指定的站点(18和21)出现在情节中,但当我运行代码时,不会发生任何事情。我甚至没有得到一个错误的测量。

我真的被困住了,但我相当肯定这段代码是正确的。有人能帮我吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-06 16:38:40

我现在记不起来了,但我不认为这样做的目的是让“名字”来选择应该选择的分数行。文档中提到select是一个逻辑向量,或者是要选择的分数的指数。所谓索引,是指数字索引,而不是行名。

该示例失败,因为select还用于子集要在text()中绘制的值的labels字符向量,并且该labels字符向量没有命名。使用字符向量来子集另一个向量需要命名另一个向量。

如果您这样做了,您的示例就会奏效:

代码语言:javascript
复制
data("varechem")
data("varespec")
ord <- cca(varespec ~ Al + S, varechem)
plot(ord, type = "n")

take <- which(rownames(varechem) %in% c("18", "21"))
# or
# take <- rownames(varechem) %in% c("18", "21")
text(ord, display = "sites", select = take)

我将考虑一下,支持您的示例的用例是否简单。

票数 1
EN

Stack Overflow用户

发布于 2022-03-04 15:30:41

下面的代码可能给出了您想要达到的结果:

首先,创建一个对象来存储空白的CCA1-CCA2绘图。

代码语言:javascript
复制
p1 = plot(ord, type = "n")

查找并保存站点18和21的坐标。

代码语言:javascript
复制
p1$p1$sites[c("18", "21"),]
#         CCA1      CCA2
#18  0.3496725 -1.334061
#21 -0.8617759 -1.588855
site18 = p1$sites["18",]
site21 = p1$sites["21",]

将空白的CCA1-CCA2图与18和21号站点的点叠加起来.将不同的颜色设置到不同的点可能是个好主意。

代码语言:javascript
复制
points(p1$sites[c("18", "21"),], pch = 19, col = c("blue", "red"))

显示标签可能会提供信息。

代码语言:javascript
复制
text(x = site18[1], y = site18[2] + 0.3, labels = "site 18")
text(x = site21[1], y = site21[2] + 0.3, labels = "site 21")

这是最终的阴谋。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71352817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档