我试图告诉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不能正确地将它们作为一个函数一起读取,因为它可以作为突出显示的块?
任何帮助将不胜感激,谢谢。
感谢@MrFlick现在正在运作。他解释说:
在你的行的末尾不应该有加号(+)。 qqnorm通常使用>基本图形(如plot()和axis()等。你不使用+ with base> graphics,这只适用于ggplot图。那个错误信息不是关于pch>参数,那是就在这里,它切断了直线。它是关于两个qqnorm()调用之间的+>。
我删除了(+)s,虽然仍有一些alpha值错误,但它现在作为一个块运行。