如何避免str()的NULL输出

时间:2019-01-31 01:30:28

标签: r string function

我意识到str()向分配的对象(如果分配了)返回了NULL并读取了一点,我注意到这是因为str()使用了invisible()函数引擎盖。 str()上是否有任何禁用该参数的参数,因此它实际上可以返回对象的结构?

1 个答案:

答案 0 :(得分:2)

调用

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 ...