2016-04-08 22 views
0

Ich habe einen Datensatz in R, der 4 Spalten hat: Größe der Schildkröte Jungtiere, Anzahl der Nester, Jahre, Strand.Zeilen löschen in R basierend auf der Länge einer Spalte

Ich möchte einen neuen Datenrahmen erstellen, ausgenommen die Nester, für die ich weniger als 10 Schlüpflinge gemessen habe. Daher muss ich Zeilen basierend auf der Länge der Spalte Größe für eindeutige Kombinationen von "Jahr", "Strand" und "Nest" ausschließen. Danke.

Antwort

2

Wir können data.table verwenden. Konvertieren Sie den 'data.frame' in 'data.table' (setDT(df1)), gruppiert nach 'Year', 'Beach', 'Nest', unterteilen wir die Gruppen, in denen die length Elemente von "Hatchling_Number" größer oder gleich sind bis 10

library(data.table) 
setDT(df1)[, if(uniqueN(Hatchling_Number)>=10) .SD, by = .(Year, Beach, Nest)] 

oder, falls es keine doppelte „Hatchling_Number“ pro Gruppe sind, können wir .N >=10 für subsetting verwenden.

setDT(df1)[, if(.N >=10) .SD, by = .(Year, Beach, Nest)] 
Verwandte Themen