Как избежать NULL-вывода str () - PullRequest
0 голосов
/ 31 января 2019

Я понял, что str() возвращает NULL назначенному объекту (если назначен) и, прочитав немного, я заметил, что это потому, что str() использует функцию invisible() под капотом.Есть ли в str() какой-либо аргумент, который отключает это, чтобы он мог фактически вернуть структуру объекта?

1 Ответ

0 голосов
/ 31 января 2019

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 ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...