0
我是R新手。我一直在努力研究我的代码,但我无法理解哪个“部件”会去哪里。这是我得到的代码:在R中创建3个图的用户定义函数时遇到问题。
df=10
boxplot(rt(1000,df),rnorm(1000),names=c(paste("t,df=",df),"Standard Normal"))
x=seq(0,1,length=150)
plot(qt(x,df),qnorm(x),xlab=paste("t, df=",df),ylab="standard
Normal",main="qq-plot")
abline(0,1)
curve(dnorm(x),-3.5,3.5,main="Density Comparison")
curve(dt(x,df),lty=2,add=TRUE)
legend("topright",legend=c("standard
normal",paste("t,df=",df)),lty=c(1,2))
我应该创建用户定义的函数,它接受作为DF的输入和输出3种类型的地块。我需要使用:df = 5,10,25和50.
这是我到目前为止。请哑下来对我来说,因为我不是很熟悉,其中R术语和我不知道我把东西放在他们应该去..:
my.plot = function(n, df) {
a = rt(n,df)
b=rnorm(1000)
x= seq(0,1,length=150)
qt=qt(x,df)
qn=qnorm(x)
dn=dnorm(x)
ledt=dt(x,df)
n=1000
}
thebox= boxplot(a,b,names=c(paste("t,df=",df),"Stand rd Normal")) #1boxplot.
theplot= plot(qt,qn,xlab=paste("t, df=",df),ylab="standard Normal",main="qq-plot")
abline(0,1)
onecurve= curve(dn,-3.5,3.5,main="Density Comparison") #density curve
twocurve= curve(ledt, lty=2,add=TRUE)
legend("topright",legend=c("standard normal",paste("t,df=",df)),lty=c(1,2)
}
return(thebox)
return(theplot)
return(oneplot)
return(twocurve)
}
par(mfrow=c(1,3))
my.plot(1000,5)
my.plot(1000,10)
my.plot(1000,25)
my.plot(1000,50)
我对最后两行感到困惑。我认为它应该是'my.plot(5)'? –
你是对的...我已经写在我的控制台功能和测试,然后定制到原来的选择... 刚刚更新...请告诉我它是如何工作的! – Shambho
哇非常感谢你的帮助。我试了一下,它确实有效。唯一奇怪的是,不是打印五个1x3的地块,而是只打印最后一个df = 25的地块。无论如何,谢谢Shambho。 – user3550614