Frage 1ein Vektor gegeben, um eine Funktion zu jedem Element eines anderen Vektors anwenden
I haben eine Funktion, die in p
und n
nimmt. Ich muss jede Kombination von p=c(0.05,0.1,0.25,0.5,0.9,0.95)
und n=c(5,10,30,50,100)
grafisch darstellen. Also insgesamt 6 * 5 = 30 Grundstücke. Ich habe versucht, mit mapply
, die eine Grafik unten zeigt (EDIT: zu geringe Reputation zum Upload img, aber ich zeige, ich bekomme 6 Plots nur). Basierend auf, wo meine ablines
sind, ich denke, es versucht alle Werte von über nur einen einzigen Wert von n
!
Frage 2
ich versuche Werte von n
und p
in die Handlung zu setzen paste0()
mit denen Handlung zu verfolgen, gehört die Kombination von n
und p
, aber es scheint nicht zu funktionieren, wenn ich mapply
(es funktioniert gut für einzelne Kurven, die ich plotten manuell)
ci.auto <- function(p,n,alpha){
# Repeat the process nsim times
nsim <- 10000
ci.mat <- replicate(nsim, conf.int(p, n, alpha))
# Graphing the first 100 intervals
matplot(rbind(1:100, 1:100), ci.mat[, 1:100], type = "l", lty = 1,
xlab = paste0("sample number n=",n), ylab = "confidence interval")
abline(h = p)
text(2.5, 0.8, paste0("p=",p), col = "red")
# Proportion of times the interval is correct
mean((p >= ci.mat[1,])*(p <= ci.mat[2,]))
}
par(mfrow = c(5,6))
mapply(ci.auto, p = c(0.05,0.1,0.25,0.5,0.9,0.95), n = c(5,10,30,50,100), alpha)
es ist nur ein singulärer Wert von 0,05. – ozarka
'mapply' iteriert parallel, sodass keine anderen Kombinationen erstellt werden. Verwenden Sie 'expand.grid' oder' rep', um sie zu generieren, und übergeben Sie dann die Kombinationen an 'mapply'. – alistaire