另一个值的排列

时间:2017-01-13 11:47:16

标签: r statistics permutation glm

我在R中使用具有这两个变量的数据库。伪装和检测。值为二进制,0表示显眼,1表示伪装。检测到1,未检测到0。但是,在我的分析过程中,我在Detection变量中添加了名为Unknown的值。我想用1然后0来置换Unknown,看看每个排列是否会影响我正在使用的glm的重要性。排列可以是所有未知变为0或1,或者一些变为1而其他变为0.随机排列。这可能很简单,只是因为我没有真正的R功能。

1 个答案:

答案 0 :(得分:0)

试试这个:

camouf = c(1,NA,0,0,1,0,NA,NA,NA,0,1)

perm <- function(vec, chance = 0.5){
    unknown <- which(is.na(camouf))
    vec[unknown] <- sample(0:1, size=length(unknown), 
                       prob = c(1-chance,chance), replace = TRUE)
    return(vec)
}

perm(camouf) # do it once

replicate(50, perm(camouf))  # do it many times

它定义了一个函数perm来执行您所谓的01向量的置换,并随机放入01那些原始地方有NA的地方。 1的概率可以通过chance =参数给出。