Почему `ann = F` не работает при построении с` as.factor` в R? - PullRequest
4 голосов
/ 01 июня 2011

Я строю непрерывную переменную относительно фактора, используя plot() в R (см. Пример ниже). Я не хочу метки на осях. Без вызова as.factor в формуле ann = F подавляет печать этикеток, но не работает с as.factor в формуле.

Почему это?

Спасибо.

# example for SO
# example data 
x <- sample(1:100, 10)
y <- c(rep(1, 5), rep(2, 5))

# ann = F doesn't work here
plot(x ~ as.factor(y), ann = F)

# ann = F does work here
plot(x ~ y, ann = F)

Ответы [ 2 ]

5 голосов
/ 01 июня 2011

Кажется, это вызвано plot.formula, потому что это работает, если вы укажете x и y отдельно:

plot(as.factor(y), x, ann=FALSE)

UPDATE:

Подтверждение, что оно в graphics:::plot.formula. Строка, которая вызывает plot, явно устанавливает ylab и xlab (funname - это "plot" и dots = list(ann=FALSE)):

do.call(funname, c(list(mf[[i]], y, ylab = yl, xlab = xl), dots))
2 голосов
/ 01 июня 2011

Диспетчерская система отправляет нерабочий в plot.factor, который затем отправляет его в boxplot, у которого нет аргумента ann =, а «рабочий» отправляется в plot.data.frame, который в конечном итоге к plot.default, что делает аргумент ann =. Для подавления именования. Применение:

сюжет (x ~ as.factor (y), names = rep ("", 2))

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