Число в результатах от R - PullRequest
       1

Число в результатах от R

0 голосов
/ 21 октября 2018

В R, когда я нажимаю return для строки кода (например, гистограммы), что означает [1], который появляется в результатах?

Если есть другая строка, она приходитдо [18], затем [35].

1 Ответ

0 голосов
/ 22 октября 2018

Числа, которые вы видите в консоли в описываемой вами ситуации, являются индексами первых элементов строки.

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 явно), однако не изменится, так как автопечать может включать в себя диспетчеризацию метода только для явных классов (с атрибутом класса, или объектами)

Тип methods(print) чтобы увидеть все доступные методы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...