R中的结果数

时间:2018-10-21 17:06:14

标签: r

在R中,当我按return键以获取一行代码(例如,直方图)时,结果中出现的[1]是什么意思?

如果还有另一行,则显示为[18],然后显示为[35]。

1 个答案:

答案 0 :(得分:0)

在您描述的情况下,您在控制台中看到的数字是该行第一元素的索引。

1:20
#  [1]  1  2  3  4  5  6  7  8  9 10 11 12
# [13] 13 14 15 16 17 18 19 20

默认情况下,按行显示多少个值取决于控制台的宽度(至少在 Rstudio 中)。

我打印的值是长度为20的数字向量,从技术上讲,单个数字也是数字向量,但是长度为1,在R中,两者没有不同的概念,因此当您只打印[1]仍显示的一个值。

42
#  [1]  42

这不是很明显,例如,没有长度为2的函数,c(mean, median)list(包含函数),但是对于所述原子模式,它的工作方式是这样的(请参见?atomic ),通常是基于它们构建的类。

您可能并不总是在所有对象上看到这些数字,因为它们取决于所调用的打印方法,而打印方法本身取决于类。

library(glue)
glue("a")
# a # <- we don't see [1]!
mode(glue("a"))
# character
class(glue("a"))
# [1] "glue"      "character" 

键入print(1:20)时调用的打印方法是print.default,可以覆盖它以避免显示[numbers]

print.default <- function(x) cat(x,"\n")
print(1:20)
# 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
rm(print.default) # necessary cleanup! 

自动打印(未明确调用print时得到的内容)不会更改,为auto-printing can only involve method dispatch for explicit classes (with a class attribute, a.k.a. objects)

键入methods(print)以查看所有可用方法。