Невозможно создать пустой вектор и добавить новые элементы в R
Я только начинаю изучать R, и у меня проблема, которая оставляет меня в замешательстве. Моя цель - создать пустой вектор и добавить к нему элементы. Кажется, достаточно просто, но решения, которые я видел в stackoverflow, похоже, не работают.
В частности,
> a <- numeric()
> append(a,1)
[1] 1
> a
numeric(0)
Я не могу понять, что я делаю неправильно. Кто-нибудь хочет помочь новичку?
Ответы
Ответ 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()
в порядке.