在R中的另一个变量的参数下绘制一个自变量

Plotting a independent variable under a parameter of another variable in R

我有一个功能

    predictshrine<-0*rain-399.8993+5*crops+50.4296*log(citysize)+
    4.5071*wonders*chief+.02301*children*deaths+1.806*children+
   .10799*deaths-2.0755*wonders-.0878*children^2+.001062*children^3-
   .000004288*children^4-.009*deaths^2+.0000530238*deaths^3+
   7.974*sqrt(children)+.026937*wonders^2-.0001305*wonders^3

我也有序列

    children<-seq(0,100,length=500)

还有一个for循环

    for(deaths in c(0,5,10,50,100,200))

现在我想做的是当死亡人数达到一定数量时能够绘制预测神殿与儿童的关系图,并使用 par(mfrow) 函数一次显示所有这些图表

我有

    plot(predictshrine, children)

我希望能够在死亡=0、死亡=10、死亡=50等时执行此功能

这样我就可以有 6 个不同的图表来显示回归的变化

理想情况下我可以做类似

的事情
    plot(predictshrine, children, when deaths = 10 & 20 & 50)

但这不能作为代码使用。

我想将我的 4 循环合并到等式中。

澄清一下,死亡和儿童是我的多变量方程中的两个变量

提前致谢

-最大

您可以使用 mapply 迭代多个参数。请记住,如果要执行此操作,则需要定义所有其他变量。此外,这不是最节省内存的方法,但它应该适用于较小的组合。

predictshrine<- function(rain,citysize,wonders,chief,children,deaths,crops) {
    0*rain-399.8993+5*crops+50.4296*log(citysize)+
    4.5071*wonders*chief+.02301*children*deaths+1.806*children+
    .10799*deaths-2.0755*wonders-.0878*children^2+.001062*children^3-
    .000004288*children^4-.009*deaths^2+.0000530238*deaths^3+
    7.974*sqrt(children)+.026937*wonders^2-.0001305*wonders^3
}

deathlist = c(0,5,10,50,100,200)
#note that the children value is recycled
res = mapply(predictshrine,children = 1:100,deaths = 
 rep(deathlist,each = 100),
 rain = 0.1, wonders = 1, chief = 1, crops = 0.5,citysize = 1000)

然后你可以画六次。

#allow six plots on the panel if you want
par(mfrow = c(3,2))
#loop through different plots
for (i in 1:6)
    plot(1:100,res[1:100 + (i-1)*100])

这是它的样子