2016-04-15 13 views
0

Ich bin mit dieser Funktion eine explorative Analyse in r bekommenR sapply Namen Graph x-Achse

nums <- sapply(db, is.numeric) 
sapply(db[,nums], function(x) { 
    nome <- as.character(names(x)) 
    hist(x) 
    lines(density(x, na.rm = T)) 

    }) 

Wie kann ich den Namen der Spalte in der Handlung als x-Achse drucken? Ich habe versucht, mit apply over matrix by column - any way to get column name? aber ich kann nicht den zweiten Teil der Funktion herauszufinden, es

+1

Können Sie Beispieldaten für db bereitstellen? – JohnSG

+0

es ist eine Datenbank mit numerischen und Faktoren, so dass die Funktion, die Nummern zuweist einen Vektor mit TRUE zurückgeben, wenn numerische und FALSE mit Faktor Spalten, ich werde versuchen, einige Daten Beispiel geben – GGA

+0

Paste Ausgabe von 'dput' Funktion mit ein Kopf Ihrer Daten. –

Antwort

0

Ein Weg, über den Spaltennamen Schleife wäre in diesem Fall funktioniert:

nums <- sapply(db, is.numeric) 
numsNames <- names(db)[nums] 

sapply(numsNames, function(x) { 
    hist(db[,x], xlab=x) 
    lines(density(db[,x], na.rm = T)) 
}) 
0

Sie verwenden mapply könnten die Daten und andere Argumente zu nehmen

num <- sapply(iris, is.numeric) 
opar <- par(mfrow = c(2,2)) 
histDensity <- function(x, ...){ 
    hist(x = x, freq = FALSE, ...) 
    lines(density(x, na.rm = TRUE)) 
} 
mapply(histDensity, x = iris[, num], main = names(iris[, num])) 
par(opar) 

Alternativ hist, könnten Sie ggplot

library(reshape2) 
library(ggplot2) 
iris2 <- melt(iris) 
ggplot(iris2, aes(x = value, y = ..density..)) + 
    geom_histogram() + 
    geom_density() + 
    facet_wrap(~variable) 
verwenden