2012-10-19 10 views
5

Wie kann ich eine Tabelle basierend auf Werten unterteilen und diese Werte zurückgeben? Dies gibt nur Indizes:Wie unterteilen Sie ein Tabellenobjekt in R?

with(chickwts, table(feed)) 
with(chickwts, table(feed)) > 11 
which(with(chickwts, table(feed)) > 11) 

Ausgabe

> with(chickwts, table(feed)) 
feed 
    casein horsebean linseed meatmeal soybean sunflower 
     12  10  12  11  14  12 
> with(chickwts, table(feed)) > 11 
feed 
    casein horsebean linseed meatmeal soybean sunflower 
    TRUE  FALSE  TRUE  FALSE  TRUE  TRUE 
> which(with(chickwts, table(feed)) > 11) 
    casein linseed soybean sunflower 
     1   3   5   6 

Antwort

5

Sie müssen zweimal den berechneten Wert verwenden, so dass sie nützlich, um eine Zwischengröße zu verwenden:

x <- with(chickwts, table(feed)) 
x[x>11] 
feed 
    casein linseed soybean sunflower 
     12  12  14  12 
+0

Ah, ja natürlich, danke! – jrara

+1

Oder, mit etwas repetitivem Code: 'mit (Chickwts, Tabelle (Feed) [Tabelle (Feed)> 11])' – A5C1D2H2I1M1N2O1R2T1

6

Hier ist ein anderer Ansatz ist Verwendung der Filter Funktion:

Filter(function(x) x > 11, with(chickwts, table(feed))) 
feed 
    casein linseed soybean sunflower 
     12  12  14  12 
+0

Nette Verwendung von 'Filter()'. – A5C1D2H2I1M1N2O1R2T1

1

Eine weitere Option Basisfunktionen:

subset(data.frame(table(chickwts$feed)), Freq > 11) 

Ergebnis:

 Var1 Freq 
1 casein 12 
3 linseed 12 
5 soybean 14 
6 sunflower 12 

die dplyr Paket verwenden:

library(dplyr) 
chickwts %>% 
    count(feed) %>% 
    filter(n > 11) 

Ergebnis:

Source: local data frame [4 x 2] 

     feed n 
1 casein 12 
2 linseed 12 
3 soybean 14 
4 sunflower 12 
Verwandte Themen