Dlaczego moja funkcja R nie powróci lub nie wydrukuje wykresu? Kod znajduje się poniżej. Wydaje się, że cały kod działa dobrze, z wyjątkiem fabuły. Bez względu na to, co robię, nie mogę uzyskać R, aby utworzyć wykres po wywołaniu funkcji. Rozglądając się po Internecie, nie mogę znaleźć żadnego powodu, dla którego to by nie zadziałało.Powróć z funkcji R
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)
}
Wszelkie pomysły?
Nie potrzeba 'return', jeśli dzwonisz z najwyższego poziomu (np. z konsoli). Jeśli chcesz wyświetlić wykres, po prostu wywołaj linię 'plot' bez jej zapisywania,' print'-ing it lub 'return'-ing. – Thomas
http://stackoverflow.com/questions/11799317/custom-function-ggplot-and-return-values –
@Thomas: Ale nie dzwonię z najwyższego poziomu, jest osadzony w wywołaniu funkcji. Jeśli zadzwonię do tej funkcji, to w ogóle nie rysuje. Nawet bez drukowania/zwrotu. –