Создание двоичного вектора, показывающего, присутствует ли значение в поле в R - PullRequest
0 голосов
/ 26 ноября 2011

У меня есть вектор, который содержит 20 000 элементов в R. Однако, поскольку элементов так много, я не могу быть уверен, что некоторые из них пустые или нет.

Я хочу создать вектор из 1и 0, где 1 создается, если элемент содержит значение, и 0 создается, если элемент пустой.

i-й элемент нового вектора должен соответствовать наличию или отсутствию значенияв i-м элементе исходного вектора.

У меня такое ощущение, что это легко, но я просто не могу заставить его работать, попробовав несколько разных вариантов.Если бы кто-то мог помочь, это было бы здорово.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 26 ноября 2011

Термин «пробел» предполагает, что вы можете работать с «символьными» векторами.

> z <- sample(c("", "something", "something else"), 20, prob=c(.1,.4,.5), replace=TRUE)
> present <- 0+(z == "")
> present  [
 1] 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0

Лучше было бы установить их в NA, и метод для этого был бы:

> is.na(z) <- (z == "")
> z
 [1] NA               "something else" "something else" "something"     
 [5] "something else" "something"      "something else" "something"     
 [9] "something"      "something else" "something"      NA              
[13] "something"      "something else" "something"      "something"     
[17] "something"      "something"      NA               "something else"
0 голосов
/ 26 ноября 2011

Примерно так

> x <- c(5,7,NA,NA,3,NA)
> y <- !is.na(x)
> y
[1]  TRUE  TRUE FALSE FALSE  TRUE FALSE

Это скорее зависит от того, что вы подразумеваете под пустым

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...