2015-04-22 16 views
5

içinde bir dataframe sahip (örneğin x) R: Yeni dataframe üretecek bir R kodu gerekirkategorik bir değişken göre bir dataframe satırların alt küme, n sayısı, R

> x 
Height Weight Gender 
5  60 m 
5  70 m 
6  80 m 
4  90 m 
4  60 m 
5  70 f 
5  80 f 
6  60 f 
4  90 f 
4  60 f 

, Evet, X'in alt kümesini Cinsiyet ve her cinsiyetin sadece ilk üç sırasını (1: 3) alır ve sonucu aşağıdaki gibi verir.

>y 
Height Weight Gender 
5  60  m 
5  70  m 
6  80  m 
5  70  f 
5  80  f 
6  60  f 

cevap

4

dplyr

library(dplyr) 
x %>% 
    group_by(Gender) %>% 
    slice(1:3) 

den slice deneyin Ya

library(data.table) 
setDT(x)[,.SD[1:3] , Gender] 
+0

Bunları iki paket çalıştı. Ve her ikisi de sonuçları doğru bir şekilde veriyorlar. En iyi dplyr formatını beğendim. –

2

data.tableby Bir deneyin kullanarak:

do.call(rbind, by(X, X$Gender, head, 3)) 
+0

Bu, paketleri yüklemem gerekmeden sonuca ulaşmanın en hızlı yoluydu. –

İlgili konular