2016-09-23 12 views
5
tidyr`

मैं डेटा हैपाइवट टेबल `dplyr` या` का उपयोग कर नीचे की तरह सेट किया

wc_3 <- worldcup %>% 
    select(Time, Passes, Tackles, Saves) %>% 
    summarize(Time = mean(Time), 
      Passes = mean(Passes), 
      Tackles = mean(Tackles), 
      Saves = mean(Saves)) 

और आउटपुट:

> head(worldcup) 
       Team Position Time Shots Passes Tackles Saves 
Abdoun  Algeria Midfielder 16  0  6  0  0 
Abe   Japan Midfielder 351  0 101  14  0 
Abidal  France Defender 180  0  91  6  0 
Abou Diaby France Midfielder 270  1 111  5  0 
Aboubakar Cameroon Forward 46  2  16  0  0 
Abreu  Uruguay Forward 72  0  15  0  0 

तो फिर वहाँ कुछ चर का एक कोड गिनती मतलब है है:

:

> wc_3 
     Time Passes Tackles  Saves 
1 208.8639 84.52101 4.191597 0.6672269 

तब मैं नीचे की तरह एक उत्पादन करने की आवश्यकता

 var   mean 
    Time 208.8638655 
    Passes  84.5210084 
    Tackles  4.1915966 
    Saves  0.6672269 

मैं इस तरह करने की कोशिश की:

wc_3 <- worldcup %>% 
    select(Time, Passes, Tackles, Saves) %>% 
    summarize(Time = mean(Time), 
      Passes = mean(Passes), 
      Tackles = mean(Tackles), 
      Saves = mean(Saves)) %>% 
    gather(var, mean, Time:Saves, factor_key=TRUE) 

उत्पादन में ही है। मेरा सवाल: क्या वही आउटपुट अलग-अलग तरीके से करने के लिए वैसे भी है?

यह मेरा कोर्स है लेकिन मेरा सबमिशन अस्वीकार कर दिया गया था। मुझे नहीं पता क्यों, लेकिन मैंने इसके बारे में पूछा था।

कृपया

+0

हम्म tibbles के लिए एक पक्षांतरित समारोह अच्छा हो सकता है (वहाँ एक है?), जैसे 'wc_3%>% टी%>% as.data.frame%>% Tibble :: rownames_to_column()%>% सेटनाम (सी ("var", "mean")) '। – lukeA

उत्तर

8

एक विकल्प 'वार' से gather पहले समूह के लिए किया जाएगा और summarise 'वैल'

library(dplyr) 
library(tidyr) 
worldcup %>% 
     gather(Var, Val, Time:Saves) %>% 
     filter(Var!= "Shots") %>% 
     group_by(Var) %>% 
     summarise(Mean = mean(Val)) 
+0

आप 'Var! =' के लिए फ़िल्टर क्यों कर रहे हैं "' बचाता है? – yeedle

+0

@AbeNeuwirth टिप्पणी के लिए धन्यवाद। मैं वास्तव में 'शॉट्स 'को हटाने का मतलब था क्योंकि यह अपेक्षित आउटपुट में नहीं था – akrun

0

एक अन्य विकल्प अपने उत्पादन wc_3 स्थानांतरित करने के लिए है, के रूप में mean पाने के लिए सलाह देने के लिए इस प्रकार है:

result <- as.data.frame(t(w_c))

अपने "मतलब" चर के नाम सेट करें:

names(result)[1] <- "mean"

wc_3 से स्तंभ के नाम 'परिणाम' में rownames बन गए हैं, इसलिए हम स्तंभ "वर" के मूल्यों के रूप में इन प्राप्त करने की आवश्यकता:

result$var <- rownames(result)

सेट

rownames(result) <- NULL

इंटरचेंज ord: शून्य के रूप में हमारे 'परिणाम' तालिका में rownames स्तंभों की एर:

result <- result[,c(2,1)]

संबंधित मुद्दे