2017-11-16 12 views
2

dplyr :: summarize_all()은 사실 이후에 수동으로 다시 정렬 할 필요없이 더 읽기 쉬운 형식으로 결과를 출력 할 수있는 편리한 방법이 있습니까?dplyr summarize() fundtion의 출력

궁극적으로 나는 등, Word에서 표를 더 쉽게 포트에 대한 요약의 출력 수 있도록하고 싶습니다

내가 아래에 무엇이 같은 일을하는 작업을하지 않도록하고 싶습니다.

당신이 단정 한 형식으로 데이터를 다시 정렬 할 필요가
library(dplyr) 
library(e1071) # for skewness() function 
# make fake data 
a <- rnorm(20) 
b <- rnorm(20) 
c <- rnorm(20) 
x <- rnorm(20) 
y <- rnorm(20) 
z <- rnorm(20) 

# create dataframe 
dat = data.frame(a, b, c, x, y, z) 

# run summarize() 
descriptives <- dat %>% summarize_all(funs(mean, sd, skewness)) 
descriptives 

# rearrange descriptives 
matrix(descriptives, 6, 3, 
    dimnames = list(c("a", "b", "c", "x", "y", "z"), 
    c("mean", "SD", "skew")), byrow = FALSE) 

# RETURNS 
# mean  SD  skew  
#a 0.1533271 0.8106499 -0.02879986 
#b -0.5117311 0.5608904 -0.2668225 
#c 0.1267941 0.8214882 -0.4260682 
#x 0.05337055 0.9817041 -0.1932566 
#y -0.1091145 0.9050062 -0.3409686 
#z -0.3195788 0.8833493 -0.6663437 
+0

당신은'tidyr' 패키지를 사용하여 재 배열 과정을 자동화 할 수 있어야한다 tidyr 사용하는 천천히 내 자신을 훈련, reshape2하는 데 사용됩니다. – AntoniosK

답변

2
library(tidyr) 
library(dplyr) 
library(e1071) # for skewness() function 
# make fake data 
a <- rnorm(20) 
b <- rnorm(20) 
c <- rnorm(20) 
x <- rnorm(20) 
y <- rnorm(20) 
z <- rnorm(20) 

# create dataframe 
dat = data.frame(a, b, c, x, y, z) 

# run process 
dat %>% 
    summarize_all(funs(mean, sd, skewness)) %>% 
    gather() %>% 
    separate(key, c("var","type")) %>% 
    spread(type, value) 

# var   mean  sd skewness 
# 1 a 0.0182792019 0.9098886 -0.3851676 
# 2 b 0.0003444183 0.9815170 0.6032848 
# 3 c -0.2724927337 0.9557808 -0.1961959 
# 4 x -0.2679435647 0.6557561 -1.0111428 
# 5 y -0.1951287997 0.8190830 0.5120989 
# 6 z -0.0395147539 1.2758244 0.0464844 
+1

도움을 주셔서 감사합니다. 가능하다면 투표 할 수는 있지만, 그렇게 할만한 평판은 없습니다. –

1

, 나는 reshape2 패키지를 사용, 빠른 용융했다 https://cran.r-project.org/web/packages/tidyr/vignettes/tidy-data.html 최대 읽기 :

당신에게

예 감사합니다. tidyr을 사용하여이 작업을 수행 할 수 있으며 해당 기능은 gather()입니다. 여기에 편리한 참조입니다 - http://tidyr.tidyverse.org/ 내 머리는 여전히 너무

library(reshape2) 
library(dplyr) 
library(e1071) 
descriptives <-melt(dat) %>% 
group_by(variable) %>% 
summarize_all(funs(mean, sd, skewness)) 
+1

도와 주셔서 감사합니다. 둘 다 투표 할 수 있다면 두 가지를 모두 받아 들일 것이지만 그렇게 할 "평판"이 없습니다. –