Warum gibt meine R-Funktion kein Plot zurück oder druckt sie? Der Code ist unten. Der gesamte Code scheint gut zu funktionieren, außer der Handlung. Egal, was ich mache, ich kann R nicht dazu bringen, das Plot zu erstellen, wenn die Funktion aufgerufen wird. Wenn ich mich online umsehe, kann ich keinen Grund finden, warum das nicht funktionieren würde.Rückgabeplot von R-Funktion
powerc.fun <- function(n,sigma,r){
a <- 0.05
d <- seq(-20,20,2)
power <- rep(NA,length(d))
p.lab <- rep(NA,length(d))
for (j in 1:length(d)){
mu1 <- 110
mu2 <- mu1-d[j]
reject <- rep(NA,r)
for (i in 1:r){
sample1 <- rnorm(n,mu1,sigma)
sample2 <- rnorm(n,mu2,sigma)
sample.t <- t.test(sample1,sample2)
p.val <- sample.t[3]
reject[i] <- p.val<a
power[j] <- sum(reject)/length(reject)
p.lab[j] <- paste('d=',d[j],sep='')
}}
d.power <- cbind(d,power)
return(d.power)
p.plot <- plot(d.power[,1], d.power[,2], type="l", xlab=bquote(H[a]), ylab="Power", main="Power Calculations for Two Sample T Test")
print(p.plot)
return(p.plot)
}
Irgendwelche Ideen?
Sie brauchen nicht 'return', wenn Sie von der obersten Ebene (dh von der Konsole aus) anrufen. Wenn Sie das Diagramm anzeigen möchten, rufen Sie einfach die Zeile 'plot' auf, ohne sie zu speichern, zu drucken, zu returnieren. – Thomas
http://stackoverflow.com/questions/11799317/custom-function-ggplot-and-return-values –
@Thomas: Aber ich rufe nicht von der obersten Ebene, es ist in einem Funktionsaufruf eingebettet. Wenn ich die Funktion aufruft, zeichnet sie überhaupt nicht auf. Auch ohne Druck/Rückgabe. –