我在更改数据集中的名称时遇到问题,这令人困惑,因为我只使用一个数据集。
我的数据被组织为具有行和列的站点作为物种丰度。像这样:
sp#2 sp#2 sp#3
site#1 5 76 4
site#2 0 23 5
site#3 86 3 87
我将我的数据导入为excel文件并使用了以下代码:
rads <- as.data.frame(mydata, row.names = NULL, optional = FALSE)
我正在使用R中的RADanalysis
包为我的蜗牛社区制作我的Rank Abundance Distribution(RAD)的标准化矩阵。我没有任何问题地对RAD进行排序/绘图。这一切都按预期出现(类似于这个https://www.researchgate.net/figure/Abundance-distribution-Whittaker-Plot-of-four-Scarabaeidae-communities-active-in-sites_fig1_236023671)。当我尝试规范化我的数据时,错误开始:
nrads <- RADnormalization_matrix(input = rads,
max_rank = 3, average_over = 10,
sample_in_row = TRUE)
我收到这个输出:
nrads <- RADnormalization_matrix(input = rads,
max_rank = 3,
average_over = 10,
sample_in_row = TRUE)
1 ( 8.33 %)
|2 ( 16.67 %)
|Error in match.names(clabs, names(xi)) : names do not match previous names
我对此感到困惑,因为我没有更改我的数据集,也没有尝试将数据集合并在一起。我正在使用RADnormalization_matrix
函数创建一个具有相同数据集的新对象。为什么R认为我以前的名字不符合以前的名字?
任何建议表示赞赏!
研究文章我跟随:https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1005362#pcbi.1005362.e005
我尝试了以下方法:
library(RADanalysis)
sp1 <- c(5, 76, 4)
sp2 <-c(0, 23, 5)
sp3 <- c(86, 3, 87)
rads <- data.frame(sp1, sp2, sp3)
RADnormalization_matrix(input = rads ,
max_rank = 2,
average_over = 10,
sample_in_row = TRUE
)
关键的区别是我将max_rank更改为2(1也工作)。
我有
1 ( 33.33 %) |2 ( 66.67 %) |3 ( 100 %) |$norm_matrix
sp3 sp1
1 0.9450549 0.05494505
2 0.7640106 0.23598937
3 0.8794428 0.12055721
$inputs
$inputs$min_rank
[1] 1
$inputs$max_rank
[1] 2
$inputs$average_over
[1] 10
$inputs$labels
[1] FALSE
$inputs$sample_in_row
[1] TRUE
$inputs$method
[1] "upperlimit"
$inputs$verbose
[1] TRUE
所以我认为最有可能你不能让max_rank等于列数,因为这是数据减少。