str()
вызывается из-за побочного эффекта печати на консоли, а не из-за возвращаемого значения.Тем не менее, если вы хотите захватить этот текст и сохранить его в объекте, а не выводить его на консоль, вы можете сделать это, используя функцию capture.output()
.Вот пример:
x <- capture.output(str(mtcars))
x[1:4]
# [1] "'data.frame':\t32 obs. of 11 variables:"
# [2] " $ mpg : num 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ..."
# [3] " $ cyl : num 6 6 4 6 8 6 8 4 4 6 ..."
# [4] " $ disp: num 160 160 108 258 360 ..."
cat(x[1:4], sep="\n")
# 'data.frame': 32 obs. of 11 variables:
# $ mpg : num 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
# $ cyl : num 6 6 4 6 8 6 8 4 4 6 ...
# $ disp: num 160 160 108 258 360 ...