我在更改数据集中的名称时遇到问题,这令人困惑,因为我仅使用一个数据集。
我的数据以物种丰富度的行和列为单位进行组织。像这样:
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
包来为我的蜗牛群落制作我的等级丰度分布(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
答案 0 :(得分:1)
我尝试了以下操作:
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等于列数,因为这是数据缩减。