Я думаю, что ответ Этьеннебра показывает вам, что вы должны делать, но вот как захватить вывод print
, как вы говорите, вы хотите: используйте функцию capture.output
.
> a <- capture.output({for(i in 1:5) print(i)})
> a
[1] "[1] 1" "[1] 2" "[1] 3" "[1] 4" "[1] 5"
Вы можете видеть, что он захватывает все точно так, как напечатано. Чтобы избежать всех [1]
с, вы можете использовать cat
вместо print:
a <- capture.output({for(i in 1:5) cat(i,"\n")})
> a
[1] "1 " "2 " "3 " "4 " "5 "
Еще раз, вы, вероятно, на самом деле не хотите делать это для своего приложения, но есть ситуации, когда этот подход полезен (например, чтобы скрыть автоматически напечатанный текст, на котором настаивают некоторые функции).
EDIT:
Поскольку выходные данные print
или cat
представляют собой строку, если вы ее захватите, она все равно будет строкой и будет иметь кавычки. Чтобы удалить кавычки, просто используйте as.numeric
:
> as.numeric(a)
[1] 1 2 3 4 5