2016-07-23 20 views
2

Ich profile R-Code viel und mache profvis().Wann und warum zeigt profvis() "Quellen nicht verfügbar" an?

Bei einigen Funktionen zeigt die obere Hälfte des Browserfensters die Quelle an, manchmal nicht. Ich kann es nicht verstehen, wenn das der Fall ist, es scheint mir zufällig zu sein.

Weiß jemand, wann und warum profvis den Code im oberen Fenster nicht anzeigen kann? Eine Situation, in der es geschieht, ist dieses Stück Code:

simulation <- function(p=1e4, n=100){ 
    df <- list() 
    for(i in 1:p){ # simulate p columns of data 
    df[[paste0("Var", i)]] <- rnorm(n) 
    } 
    df <- as.data.fame(df) 

    return(apply(df, 2, mean)) 
} 

profvis(simulation()) 

profvis

Antwort

1

Wenn nur ein function() in profvis() ist, nichts ist im oberen Teil des Rahmen Graphen. Ich denke, der Grund ist, dass eine Funktion zum Hervorheben eines Balkens an der Basis des Graphen unnötig ist.

Beispielcode:

library(profvis) 

simulation <- function(p=1e4, n=100){ 
    df <- list() 
    for(i in 1:p){ # simulate p columns of data 
    df[[paste0("Var", i)]] <- rnorm(n) 
    } 
    df <- as.data.frame(df) 
    return(apply(df, 2, mean)) 
} 

profvis(simulation()) # When only one function() is, the source isn't shown. 

profvis({    # When there are more than two function(), source is shown. 
    simulation() 
    sum(iris[,1]) 
}) 
+0

Dank! Das scheint der Grund zu sein. Seltsam, nicht wahr? Wenn ich nur eine Funktion mit einer for-Schleife innerhalb habe, würde ich auch gerne auf einen Blick sehen, wie lange es im Aufruf von rnorm() in der Schleife verweilt. –