2017-01-13 6 views
-2

Я работаю в R с базой данных, которая имеет эти две переменные. Камуфляж и обнаружение. Значения двоичные, 0 для заметных и 1 для маскировки. 1 для обнаруженных и 0 для необнаруженных. Однако во время моего анализа я добавил значения, которые называются Неизвестными в переменной обнаружения. Я хотел бы переставить Неизвестный с 1, затем 0, и посмотреть, влияет ли каждая из перестановок на значение используемого мной glm. Перестановка может заключаться в том, что все Неизвестные изменяются на 0 или на 1 или что некоторые изменяются на 1 и другие на 0. Случайная перестановка. Это может быть просто, это просто, что я не очень функциональным с R.Перестановка значения другим

+1

гораздо проще следить за вопросом, если вы приводите примеры того, что у вас есть, желаемый результат и то, что вы пробовали – manotheshark

+0

У меня на самом деле есть две колонки в базе данных: обнаружение и камуфляж. Я хочу посмотреть, обнаружена ли модель, когда она замаскирована, или нет. Однако иногда было неясно, было ли это обнаружено, поэтому я поставил Unknown в столбце «Обнаружение». Я хочу использовать это Неизвестное, чтобы увидеть, какие результаты я бы получил, если Неизвестный был фактически обнаружен (1) или не обнаружен (0). Надеюсь, я был чист. – Broccoli

ответ

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 делать то, что вы называете переставлять вектор 0 и 1 и положить в случайном 0 или 1 в тех местах, где оригинал имел NA. Вероятность 1 может быть задана с помощью аргумента chance =.

+0

Спасибо, что ответили. Но у меня есть значения в столбце базы данных. Должен ли я преобразовать его в вектор? И у меня нет NA, это на самом деле Unknown, поэтому я предполагаю, что в первой операции я должен заменить NA неизвестным правом? – Broccoli

+0

Столбец в R всегда является одним видом данных. если некоторые строки имеют характер типа, например «Неизвестный», то другие значения в этом столбце не могут быть числовыми, но должны также иметь символ типа. 'NA' для« недоступно »- это особое значение в R, которое может быть частью столбца с числовым номером. Поэтому, читая данные в R, вы должны сделать shure, чтобы все «Неизвестные» значения стали NA. После чтения данных в R они образуют «data.frame», и каждый столбец в «data.frame» является вектором. Вот почему я продемонстрировал, как это сделать с помощью вектора. – Bernhard

+0

Хорошо, теперь я понимаю. Фактически, R меняет свое Неизвестное значение на 3, когда я превращаю свою колонку в вектор. Как только я выполняю эту перестановку, как я могу проверить влияние каждой перестановки на мой glm, который является 'model1 = glm (Detection ~ Camouflage, data, family = binomial)? – Broccoli

Смежные вопросы