我没有合并数据集。为什么R总是说“名称与以前的名称不匹配”?

时间:2019-03-21 03:49:36

标签: r names

我在更改数据集中的名称时遇到问题,这令人困惑,因为我仅使用一个数据集。

我的数据以物种丰富度的行和列为单位进行组织。像这样:

        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

1 个答案:

答案 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等于列数,因为这是数据缩减。