R: Ошибка, если аргумент имеет нулевую длину - PullRequest
0 голосов
/ 18 января 2019

У меня есть такой вектор:

x <- c(0.9,0.9,0,0,0.9,0,0.8)

Я хочу исключить все нули и создать из него новый вектор, поэтому я создал оператор if:

if (x[i] == 0) {
y <- x[-(i)]}

Но я получаю следующую ошибку:

Error in if (x[i] == 0) { : argument is of length zero

У кого-нибудь есть решение? Заранее спасибо!

1 Ответ

0 голосов
/ 18 января 2019

Нам не нужен цикл for с if/else. Это может быть просто сделано с векторизацией

y <- x[x != 0]

Создайте логический вектор с выражением x != 0, используйте его для подмножества (?Extract с квадратными скобками) исходного вектора и назначьте выходной вектор переменной с идентификатором 'y'

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