Select 参数不适用于 cca 对象

Select argument doesn't work on cca objects

我在 vegan 中创建了一个 class cca 的对象,现在我正在尝试整理三联图。但是,我似乎不能使用 select 参数来只显示指定的项目。 我的代码如下所示:

data("varechem")
data("varespec")
ord <- cca(varespec ~ Al+S, varechem)
plot(ord, type = "n")
text(ord, display = "sites", select = c("18", "21"))

我只希望两个指定的站点(18 和 21)出现在图中,但是当我 运行 代码没有任何反应。我什至没有收到错误消息。

我真的卡住了,但我相当确定这段代码是正确的。有人可以帮助我吗?

下面的代码大概给出了你想要达到的结果:

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

p1 = plot(ord, type = "n")

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

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",]

用站点 18 和 21 的点覆盖空白的 CCA1-CCA2 图。为不同的点设置不同的颜色可能是个好主意。

points(p1$sites[c("18", "21"),], pch = 19, col = c("blue", "red"))

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

text(x = site18[1], y = site18[2] + 0.3, labels = "site 18")
text(x = site21[1], y = site21[2] + 0.3, labels = "site 21")

这是结果图。

我现在想不起来了,但我不认为其意图是让“名称”select 分数的哪些行应该 selected。文档说 select 是一个逻辑向量,或者是要 selected 的分数的索引。索引是指 numeric 索引,而不是行名。

该示例失败,因为 select 还用于对要在 text() 中绘制的值的 labels 字符向量进行子集化,而此 labels 字符向量不是命名。使用字符向量子集化另一个向量需要命名另一个向量。

如果您这样做,您的示例将有效:

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)

我会考虑支持您的示例的用例是否简单。