Как мне отбирать только ненулевые значения в R?

#r #sampling

#r #выборка

Вопрос:

Есть ли способ отбирать только ненулевые значения в R? В настоящее время у меня есть этот код.

 s <- sample(200000, replace=TRUE);
m <- mydata$myvar[s]
  

Однако некоторые элементы m имеют значение null. Существует ли такая простая команда, как следующая?

 s <- sample(200000, replace=TRUE, na.rm=TRUE);
s <- sample(mydata$myvar, replace=TRUE, na.rm=TRUE);
  

В документации не указано, что такая опция существует.

Комментарии:

1. Вы уверены, что получаете NULL, а не NA? Я получаю NA, когда пытаюсь получить доступ к индексам за пределами границ.

2. Каков результат length(mydata$myvar) ?

Ответ №1:

После этого вы можете просто удалить NULL элементы:

 m <- m[!is.null(m)]
  

Ответ №2:

Возможно, ваши данные не содержат 200000 строк.

 s <- sample(1:nrow(mydata),200000, replace=TRUE);

#replce =TRUE or FALSE as per your requirement

m <- mydata$myvar[s]
  

Попробуйте это, надеюсь, это сработает

Комментарии:

1. Еще лучше, sample(nrow(mydata), ... чтобы объект 1:nrow(mydata) не нужно было создавать.

Ответ №3:

?na.omit

или ?complete.cases если вам просто нужно проиндексировать по нему