Подтвердить что ты не робот

Невозможно создать пустой вектор и добавить новые элементы в R

Я только начинаю изучать R, и у меня проблема, которая оставляет меня в замешательстве. Моя цель - создать пустой вектор и добавить к нему элементы. Кажется, достаточно просто, но решения, которые я видел в stackoverflow, похоже, не работают.

В частности,

>     a <- numeric()
>     append(a,1)
[1] 1
>     a
numeric(0)

Я не могу понять, что я делаю неправильно. Кто-нибудь хочет помочь новичку?

4b9b3361

Ответ 1

append делает что-то, что несколько отличается от того, что вы думаете. См. ?append.

В частности, обратите внимание, что append не изменяет свой аргумент. Он возвращает результат.

Вам нужна функция c:

> a <- numeric()
> a <- c(a, 1)
> a
[1] 1

Ответ 2

Ваш вектор a не передается по ссылке, поэтому, когда он изменен, вы должны сохранить его обратно в a. Вы не можете получить доступ к a и ожидать, что он будет обновлен.

Вам просто нужно назначить возвращаемое значение вашему вектору, как это сделал Мэтт:

> a <- numeric()
> a <- append(a, 1)
> a
[1] 1

Мэтт прав, что c() является предпочтительным (меньше нажатий клавиш и более универсальным), хотя использование append() в порядке.