r - 在 vegan 包中保留行名
问题描述
我正在使用vegdist()
包中的vegan
来计算 Morisita 的相似度指数。我的数据在第一列中存储了站点名称。
TCR 3 0 0 0
MTF 0 1 2 0
UTZ 0 1 0 1
MTC 0 0 0 0
TMC 0 0 0 0
RLK 0 0 0 0
因为vegdist
不接受非数字数据,所以我必须通过指定来删除站点名称data[-1]
vegdist(data[-1 ], method='morisita')
这很好用,但是我显然没有任何站点名称:
1 2 3 4 5
2 0.02701298
3 0.30256065 0.31838705
4 0.00000000 0.02279212 0.27784052
5 0.25158180 0.33946880 0.54253442 0.29648698
6 0.03720930 0.03925893 0.35777998 0.03406440 0.40862423
根据我的数据和我认为的网站,其中一些数字似乎不正确。所以我有网站名称来确认哪个是哪个是非常重要的。使用时如何保留我的站点名称vegdist()
?
作为说明,我能够在使用时保留站点名称diversity()
,也来自vegan
,这样:
plyr::ddply(data, ~site, function(x) {
data.frame(simpson=diversity(x[-1], index='simpson'))
})
但我无法弄清楚如何适应它vegdist()
。
解决方案
这就是制作基本 R 行名属性的目的。
rownames(data) <- data[,1]
data <- data[,-1]
data
# V2 V3 V4 V5
#TCR 3 0 0 0
#MTF 0 1 2 0
#UTZ 0 1 0 1
#MTC 0 0 0 0
#TMC 0 0 0 0
#RLK 0 0 0 0
现在,当您使用所有这些功能时,vegan
您会得到更有用的结果。
library(vegan)
vegdist(data,method='morisita')
# TCR MTF UTZ MTC TMC
#MTF 1
#UTZ 1 0
#MTC NaN NaN NaN
#TMC NaN NaN NaN NaN
#RLK NaN NaN NaN NaN NaN
推荐阅读
- azure - 来自 SPA 的 Azure AD 代码授权?
- javascript - react-native firebase 在类 com.facebook.react.bridge.ReadableNativeMap 上找不到要序列化的属性
- scala - 无形:找不到 Coproduct 映射的隐式
- javascript - 使用 Promise 通过 submit() 提交表单
- python - 从字符串中提取坐标
- lua - 如何向 Torch7 张量添加切片?
- java - 带有记忆的递归斐波那契的空间复杂度?
- spring-batch - 如何包含 Spring Batch JdbcBatchItemWriter 的计数器
- ubuntu - ubuntu 18 - 鼠标右键单击
- python-3.x - Tkinter 最佳按钮文字翻转方法