2015-09-07 17 views
5

'u özetledim. dplyr'daki group_by düzeylerinin nasıl soyulmuş olduğuyla ilgili bir şey eksik olmalıyım. Aşağıdaki örnekte, 2 sütun tarafından grubu, yeni bir değişken ile sıralama daha sonra, tek bir değişken değerler de özetlenmiştir: Açıkçası bu hp_range göre sıralanmış,dplyr: Grup_by'den sonra beklendiği gibi davranmıyor ve

mtcars %>% group_by(cyl, gear) %>% 
    summarize(hp_range = max(hp) - min(mpg)) %>% 
    arrange(desc(hp_range)) 

# Source: local data frame [8 x 3] 
# Groups: cyl [3] 
# 
# cyl gear hp_range 
# (dbl) (dbl) (dbl) 
#1  4  4 87.6 
#2  4  5 87.0 
#3  4  3 75.5 
#4  6  5 155.3 
#5  6  4 105.2 
#6  6  3 91.9 
#7  8  5 320.0 
#8  8  3 234.6 

istendiği şekilde. Neyi kaçırıyorum?

DÜZENLEME: Örnek, düzenleme yapılmadan desc numaralı çağrı yapılmadan beklendiği gibi çalışır. Hala neden net değil?

cevap

8

Tamam, sadece bu bitene kadar zamanın var:

  1. çağrı etkisi yoktur desc nedeniyle, örnek,
  2. anahtarı olmadan işe yaramadı tesadüfen olduğunda sizi o group_by çoklu sütun, sonuçların Gruplar tarafından otomatik olarak sıralandığı görülmektedir. Yukarıdaki örnekte, cyl sıralanır. tüm veri tablosunun amaçlanan tür almak için öncelikle gerekir ungroup ve sonra arrange

    mtcars %>% group_by(cyl, gear) %>% 
        summarize(hp_range = max(hp) - min(mpg)) %>% 
        ungroup() %>% 
        arrange(hp_range) 
    
+0

Ben sadece tüm soru ve cevaplar şu ana kadar bu sitede çok iyi olduklarını söylemek istedim. Tekrarlanabilir örnekler ile birlikte iyi net açıklamalar. Yani teşekkürler! –

İlgili konular