为什么四个因素之间有空格?

时间:2018-06-16 17:34:02

标签: r

enter image description here

大家好,我是R的初学者。 矢量“研讨会”包含四个级别:R SAS SPSS和STATA, 它的字符串是c(1,2,1,2,1,2,1,2) 我运行因子函数作为附加的截图, 我不明白为什么矢量之间会有这样的空格 打印出来的? 这样重要吗?

非常感谢!!!

1 个答案:

答案 0 :(得分:1)

R' print函数(实际上是一个函数族,每个函数都特定于一类对象)通常会尝试排列值,以便列标题和值排列在右侧或左侧。这使得人类读者更容易保持"直接"。它通过首先计算最大宽度然后填充打印输出以使所有值之间存在空间来实现此目的。它也可以使用read.fwf更容易从屏幕抓取中读取,但我不认为这是主要目标。执行此操作的代码位于print.factor中,可以通过在控制台上键入函数名来查看。

 fac <- factor( sample(1:10, size=100, repl=TRUE), labels=c(letters[1:9], "really long level")
+ )
 fac
 #---------------
  [1] a                 f                 d                 d                 d                 b                 e                
  [8] f                 e                 c                 g                 d                 g                 d                
 [15] h                 e                 b                 g                 b                 a                 f                
 [22] really long level d                 c                 e                 e                 g                 f                
 [29] c                 f                 g                 h                 i                 g                 e                
 [36] i                 b                 c                 i                 b                 d                 a                
 [43] c                 i                 a                 e                 really long level g                 g                
 [50] d                 b                 f                 c                 e                 really long level f                
 [57] i                 f                 c                 really long level i                 g                 e                
 [64] e                 h                 h                 e                 h                 b                 a                
 [71] i                 g                 g                 really long level h                 i                 i                
 [78] really long level h                 d                 c                 a                 i                 g                
 [85] e                 really long level e                 e                 f                 c                 e                
 [92] b                 really long level g                 d                 a                 h                 d                
 [99] h                 really long level
Levels: a b c d e f g h i really long level

所以我在这种情况下关于他们排在哪一方的初步解释是错误的,尽管这确实适用于print.data.frame的运作方式。 print.factor - 函数(实际上print.default执行值)在左侧排列它们。 print.data.frame行值在右侧。