【发布时间】:2017-02-10 22:31:50
【问题描述】:
我已经为此任务寻找答案或解决方案,但目前还没有成功,所以如果这是多余的,我深表歉意。
我想随机化两列之间的数据。这是为了模拟植被场数据中的物种错误识别,因此我也想在两列之间分配某种错误识别概率。我想有一些方法可以使用sample 或“permute”包来做到这一点。
我将选择一些现成的数据作为示例。
library (vegan)
data (dune)
如果您输入head (dune),那么您可以看到这是一个数据框,其中站点为行,物种为列。为方便起见,我们可以假设一些现场技术人员可能会错误识别早熟禾和早熟禾。
poa = data.frame(Poaprat=dune$Poaprat,Poatriv=dune$Poatriv)
head(poa)
Poaprat Poatriv
1 4 2
2 4 7
3 5 6
4 4 5
5 2 6
6 3 4
在这两列之间随机化值的最佳方法是什么(在彼此之间传输和/或在两者都存在时相加)。结果数据可能如下所示:
Poaprat Poatriv
1 6 0
2 4 7
3 5 6
4 5 4
5 0 7
6 4 3
附言
对于那些畏缩不前的生态学家:请注意,我做了这个例子是为了节省时间,而且我知道相对覆盖值不是累加的。我很抱歉需要这样做。
*** 编辑:为了更清楚起见,被随机化的数据类型将是覆盖率估计值(因此值介于 0% 和 100% 之间)。这个快速示例中的数据是相对覆盖率估计,而不是计数。
【问题讨论】:
-
根据什么分布/权重随机化?如果未加权的正态分布很好,那么为什么不只是
unique()组合列和组合列的添加以及sample()呢?否则mapply()或purrr::map2()跨列并以这种方式随机添加或更改值? -
大概,如果有人不能很好地区分两个物种,分布可能是均匀随机的,而不是正态分布。也没有理由相信它是对称的。所有记录可能是针对一个物种的,或者现场成员可能在两者之间随机选择(即基于错误的字符)。对不起,我应该更清楚。
标签: r permutation