在R中,当我按return键以获取一行代码(例如,直方图)时,结果中出现的[1]是什么意思?
如果还有另一行,则显示为[18],然后显示为[35]。
答案 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)
以查看所有可用方法。