2013-05-26 5 views
8

Я использую R для генерации примеров того, как обращаться с отсутствующими данными для класса статистики, который я преподаю. Один метод требует генерации «отсутствующих значений двоичной переменной», с 0 для случаев, содержащих отсутствующие значения, и 1 без пропущенных значений. НапримерR-генерировать переменную «недостающие значения»

n X Y Z 
1 4 300 2 
2 8 400 4 
3 10 500 7 
4 18 NA 10 
5 20 50 NA 
6 NA 1000 5 

Я хотел бы, чтобы создать переменную M, так что

n m 
1 1 
2 1 
3 1 
4 0 
5 0 
6 0 

Кажется, это должно быть простым, учитывая способность R, чтобы обрабатывать пропущенные значения. Самое близкое, что я нашел, - m <-ifelse(is.na(missguns),0,1), но все это создает новую целую матрицу данных с 0 или 1, указывающую на отсутствие. Однако мне просто нужна одна переменная, указывающая, содержит ли строка недостающие значения.

ответ

9

complete.cases делает именно то, что вы хотите.

complete.cases(x) 
## [1] TRUE TRUE TRUE FALSE FALSE FALSE 

Вы можете принуждать к числовым или целыми:

as.integer(complete.cases(x)) 
## [1] 1 1 1 0 0 0 
+0

Спасибо-что сделал трюк! Так же, как обновление, я выполнял т-тест Рубина. вот код, который я сгенерировал. Набор данных - это «промахи» (набор данных «пушки», но я включил пропущенные значения), а одна из переменных - «городская». Отсутствует <-as.integer (complete.cases (missguns)) Практика <-cbind (missguns, missing) отсутствует <-practice [practice $ missing == 0,] complete <-practice [practice $ missing == 1 ,] t.test (отсутствует $ urban, полный $ urban) –

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