Почему мой график qqnorm не может работать как часть функции или в скобках?

Я пытаюсь сказать R запускать несколько строк одновременно, используя скобки "{}". Я делал это с успехом раньше. Я пытаюсь создать несколько графиков за раз, определив несколько графиков в одной функции.

Например:

qqnorm(residuals(LM_auto), col="black", fg="blue", pch= 21, bg=col_1, alpha = .7, sub = shapiro_output, xlab = "Shapiro Results Below:")+qqline(residuals(LM_auto))
plot(density(residuals(LM_auto)), col="black", fg="blue", bg=col_1) + polygon(density(residuals(LM_auto)), col=col_1)+
plot(residuals(LM_auto)~fitted(LM_auto), col="black", fg="blue", pch= 21, bg=col_1, alpha = .7, main="Summary Output-------------->")+
abline(h = c(100, 10, 2, 0, -2, -10, -100), col = c("yellow", "orange", "blue", "black", "blue", "orange", "yellow"), lty = c(5,4,2,1,2,4,5))+
plot(residuals(LM_auto)~xparameter, xlab=X_variable_title, col=col_1, fg="blue", pch= 21, bg=col_1, alpha = .7, main=summary_output, cex.main=.6)+
abline(h = c(100, 10, 2, 0, -2, -10, -100), col = c("yellow", "orange", "blue", "black", "blue", "orange", "yellow"), lty = c(5,4,2,1,2,4,5))'

Все эти строки работают, даже если они выделены и работают как блок. Однако, если я попытаюсь поместить их в скобки или определить блок как функцию, они не будут работать (кроме создания qqplot), и R вернет набор ошибок.

{
qqnorm(residuals(LM_auto), col="black", fg="blue", pch= 21, bg=col_1, alpha = .7, sub = shapiro_output, xlab = "Shapiro Results Below:")+qqline(residuals(LM_auto))
plot(density(residuals(LM_auto)), col="black", fg="blue", bg=col_1) + polygon(density(residuals(LM_auto)), col=col_1)+
plot(residuals(LM_auto)~fitted(LM_auto), col="black", fg="blue", pch= 21, bg=col_1, alpha = .7, main="Summary Output-------------->")+
abline(h = c(100, 10, 2, 0, -2, -10, -100), col = c("yellow", "orange", "blue", "black", "blue", "orange", "yellow"), lty = c(5,4,2,1,2,4,5))+
plot(residuals(LM_auto)~xparameter, xlab=X_variable_title, col=col_1, fg="blue", pch= 21, bg=col_1, alpha = .7, main=summary_output, cex.main=.6)+
abline(h = c(100, 10, 2, 0, -2, -10, -100), col = c("yellow", "orange", "blue", "black", "blue", "orange", "yellow"), lty = c(5,4,2,1,2,4,5))
}

ошибки:

Error in qqnorm(residuals(LM_auto), col = "black", fg = "blue", pch = as.numeric(21),  : 
non-numeric argument to binary operator

In addition: Warning messages:

1: In plot.window(...) : "alpha" is not a graphical parameter

2: In plot.xy(xy, type, ...) : "alpha" is not a graphical parameter

3: In axis(side = side, at = at, labels = labels, ...) : "alpha" is not a graphical parameter

4: In axis(side = side, at = at, labels = labels, ...) : "alpha" is not a graphical parameter

5: In box(...) : "alpha" is not a graphical parameter

6: In title(...) : "alpha" is not a graphical parameter'

Кажется, это ошибка с функцией qqnorm, так как я могу запускать свой код в скобках, пока эта строка удалена.

Почему 21 не распознается как число? Или это действительно проблема? Я пробовал это с:

pch=as.numeric(21)

Но это все еще не работает.

Почему R не может правильно прочитать все это вместе как функцию, когда он может сделать это как выделенный блок?

Любая помощь будет высоко оценена, -Спасибо.


person Sean Graham    schedule 19.03.2019    source источник
comment
В конце ваших строк не должно быть плюсов (+). qqnorm обычно использует базовую графику (как и plot() и axis() и тому подобное. Вы не используете + с базовой графикой, это только для графиков ggplot. Это сообщение об ошибке не касается параметра pch, просто здесь оно обрезает самое линия линия. Речь идет о + между двумя вызовами qqnorm(). В будущем вам будет легче помочь, если вы предоставите воспроизводимый пример с примерами входных данных (определены все ваши переменные)   -  person MrFlick    schedule 20.03.2019


Ответы (1)


благодаря @MrFlick теперь это работает. Как он объяснил:

В конце ваших строк не должно быть плюсов (+). qqnorm обычно использует> базовую графику (как и plot () и axis () и т.п. Вы не используете + с базовой> графикой, это только для графиков ggplot. Это сообщение об ошибке не относится к параметру pch>, это только здесь он отрезал саму строку, речь идет о + > между двумя вызовами qqnorm().

Я удалил (+), и хотя с альфа-значениями все еще есть некоторые ошибки, теперь он работает как блок.

person Sean Graham    schedule 20.03.2019