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