2017-03-07 2 views
0

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) 
+0

es ist nur ein singulärer Wert von 0,05. – ozarka

+1

'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

Antwort

0
df<-expand.grid(p,n) 
mapply(Fun = ci.auto, df$Var1,df$Var2,alpha) 
Verwandte Themen