【发布时间】:2021-11-03 09:37:20
【问题描述】:
我一直在尝试解决以下问题,我确信这是一个简单的问题(我只是无法找到解决方案)。我正在使用 vegan 包,并希望执行一个 cca,将实际的行名称显示为标签(而不是默认的“sit1”、“sit2”……)。
我使用 cast() 创建了一个数据框 (ls_Treat1),将地块处理(AB、DB、DL 等)显示为行名称和物种出现。数据框如下所示:
| species 1 | species 2 | species 3 | |
|---|---|---|---|
| AB | 0 | 3 | 1 |
| DB | 1 | 6 | 0 |
| DL | 3 | 4 | 2 |
我使用以下代码创建了数据框,以将处理(AB、DB、DL、...)设置为行名称:
ls_Treat1 <- cast(fungi_ls, Treatment ~ species)
row.names(ls_Treat1)<- ls_Treat1$Treatment
ls_Treat1 <- ls_Treat1[,-1]
当我使用以下代码执行 cca 时:
ca <- cca(ls_Treat1)
plot(ca,display="sites")
R 将默认标签“sit1”、“sit2”、... 放入绘图中,而不是实际的行名,即使我之前以这种方式执行过并且绘图通常显示正确的标签。这与我创建数据框有什么关系吗?我尝试将处理(字符)更改为数字(整数或因子),但仍然不会用我的行名标记该图。
谁能帮我解决这个问题?
非常感谢!!
【问题讨论】:
-
您好,我无法重现您的代码。您可以添加有关您正在使用的所有软件包的信息吗?函数“cast”从何而来? fungus_ls 是包的内置数据集吗?或者您也可以为此提供代码,例如,fungi_ls
-
您好,谢谢您的回答。对于 cast() 我正在使用包 reshape。 fungus_ls 是我合并的数据框(也与 reshape 合并): fungus_ls
-
我的猜测是你没有你假设的行名。你从命令 rownames(
) 中得到什么? -
嗨,Jari,感谢您的评论,当我执行命令 rownames(ls_Treat1) 时,我得到以下结果: > rownames(ls_Treat1) [1] "AB" "AL" "AR" " AS" "CC" "DB" "DL" "DR" "DS"
-
我认为您的输入数据中有问题:检查
cast()给您的信息 - 我敢打赌,这不是标准数据框,而是一些混乱的东西。
标签: r dataframe label reshape vegan