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

问题描述 投票:-1回答:1

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

我的数据被组织为具有行和列的站点作为物种丰度。像这样:

        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

r names
1个回答
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等于列数,因为这是数据减少。

© www.soinside.com 2019 - 2024. All rights reserved.