Почему `ann = F` не работает при построении с`as.factor` в R?
Я строю непрерывную переменную против фактора, используя 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 ответа
Кажется, это вызвано plot.formula
потому что это работает, если вы укажете x
а также y
по отдельности:
plot(as.factor(y), x, ann=FALSE)
ОБНОВИТЬ:
Подтверждение, что это в 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))
Диспетчерская система отправляет нерабочий элемент в plot.factor, который затем отправляет его в boxplot, у которого нет аргумента ann=, а "рабочий" - в plot.data.frame, который отправляется в plot. в конечном итоге по умолчанию, что делает аргумент ann=. Для подавления именования. использовать:
plot (x ~ as.factor (y), names = rep ("", 2))