2017-05-13 4 views
0

I wie unter dem Mittelwert von jeder Spalte in einem Datenrahmen erhalten möchten:Wie man dorthin Wert von jeder Spalte in einem Datenrahmen bedeuten

> x <- cbind(x1 = 3, x2 = c(4:1, 2:5)) 
> x 
    x1 x2 
[1,] 3 4 
[2,] 3 3 
[3,] 3 2 
[4,] 3 1 
[5,] 3 2 
[6,] 3 3 
[7,] 3 4 
[8,] 3 5 
> y <- colMeans(x) 
> y 
x1 x2 
3 3 

Ich kann den Mittelwert erhalten von y aber y ist kein Datenrahmen. Wie kann ich einen Rückgabewert des Datenrahmens erhalten? Ich muss cbind auf y verwenden, um mit anderen Datenrahmen zu binden.

+0

Daten. frame (colMeans (x)) gibt alle Daten in einer Spalte zurück. Wie kann ich es hintereinander machen? –

+0

Sie können 'tidyverse' verwenden, d. H.' X%>% as.tibble%>% summarise_all (mean) ' – akrun

Antwort

0

In Ihrem Beispiel ist x eine Matrix. Sie haben zwei Optionen:

Option 1 - x in einen Datenrahmen verwandeln und dann sapply

x<-as.data.frame(cbind(x1 = 3, x2 = c(4:1, 2:5))) 
x.df<-sapply(x,FUN=mean) 

> x.df 
x1 x2 
3 3 

Option 2 verwenden - verwenden anwenden und verwandelt das Ergebnis in einem Datenrahmen

x <- cbind(x1 = 3, x2 = c(4:1, 2:5)) 
x.df<-as.data.frame(t(apply((x),MARGIN=2,FUN=mean))) 

> x.df 
x1 x2 
3 3 
Verwandte Themen