R 一个值被另一个值置换

R 一个值被另一个值置换,r,statistics,permutation,glm,R,Statistics,Permutation,Glm,我在R中使用一个包含这两个变量的数据库。伪装和探测。这些值是二进制的,0表示明显,1表示伪装。1表示检测到,0表示未检测到。但是,在分析过程中,我在检测变量中添加了称为未知的值。我想用1然后0来排列未知,看看每个排列是否会影响我正在使用的glm的重要性。排列可能是所有未知更改为0或1,或者一些更改为1,其他更改为0。随机排列。这可能很简单,只是我对R没有真正的功能性。试试这个: camouf = c(1,NA,0,0,1,0,NA,NA,NA,0,1) perm <- function(

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

试试这个:

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
camouf=c(1,NA,0,0,1,0,NA,NA,NA,0,1)

perm如果你举例说明你拥有什么、想要的输出和你已经得到了什么,那么回答一个问题就容易多了。事实上,数据库中有两列:检测和伪装。我想看看伪装后的模型是否被检测到。然而,有时它不清楚是否被检测到,所以我把Unknown放在检测栏中。我想使用此未知项查看如果实际检测到未知项(1)或未检测到未知项(0),我会得到什么样的结果。我希望我是清楚的谢谢你的回答。但我实际上在数据库的一列中有这些值。我应该把它转换成向量吗?我没有NA,它实际上是未知的,所以我想在第一次操作中,我应该用未知来替换NA,对吗?R中的一列总是一种数据。如果某些行是字符类型,如“未知”,则该列中的其他值不能是数字,但也必须是字符类型的bi
NA
表示“不可用”的值是R中的一个特殊值,可以是全数字列的一部分。因此,在将数据读入R时,必须使舒尔的所有“未知”值变为NA。将数据读入R后,它们形成一个
data.frame
,而
data.frame
中的每一列都是一个向量。这就是为什么我演示了如何使用向量。好了,现在我明白了。事实上,每当我将列转换为向量时,R都会将未知值更改为3。一旦我执行此置换,我如何检查每个置换对glm的影响,即
model1=glm(Detection~camovage,data,family=binomial)
?您可以计算每个新构造向量的glm,然后比较模型/系数/。这完全取决于你当初为什么要这么做。我想你试着做一些引导,但你从来没有说过,你想用这个达到什么。是的,这是一种引导,但我不知道怎么做。我的目的是用0/1的所有可能组合替换未知值或NA,以查看伪装对检测的影响是否保持有意义。事实上,我正在分析相机陷阱,在某些情况下,不清楚捕食者是否检测到了模型,所以我只是把未知的。在不考虑未知因素的情况下,实现了一种glm算法,并对伪装的检测效果进行了分析。现在,我想看看它是否被维护,是否确实检测到未知。