Тип возврата Rserve в случае нескольких операторов

Привет, я не совсем понимаю возвращаемый тип Rserve в случае множественной команды. например.

a<-rnorm(10);a[4];rnorm(3)

Кажется, что Rserve возвращает только последний оцененный оператор, т.е. RNorm (3). Можно ли получить все три выходных значения с помощью Rserve?

Также мне интересно узнать, как именно в R можно получить возвращаемое значение последнего оцениваемого выражения? Есть ли специальный символ в R, чтобы получить это, как в perl?

Ответ 1

Это нормальное поведение R, сравнимое с поведением, которое вы получаете в функции. Например:

spam = function(x, y) {
  z = x + y
}

Здесь R возвращает z, потому что это была последняя операция. Чтобы получить все объекты, вы можете использовать список:

spam = function(x, y) {
  z = x + y
  list(x,y,z)
}

Это должно работать в вашем случае:

a<-rnorm(10);list(a,a[4],rnorm(3))

Кроме того, я не знаю, как извлечь последнее выполненное выражение, , но я бы не рекомендовал его использовать в любом случае. Такой синтаксис только затрудняет чтение программы и не спасает вас в любое время.