Ответ 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))
Кроме того, я не знаю, как извлечь последнее выполненное выражение, , но я бы не рекомендовал его использовать в любом случае. Такой синтаксис только затрудняет чтение программы и не спасает вас в любое время.