2017-11-21 5 views
2

Können sagen, ich habe eine Liste von Datenrahmen, zIdentifizieren und zählen übereinstimmende Datenrahmen in R?

list.df <- replicate(1000, 
data.frame(l = sample(letters[1:5], 4), n = sample(c(1:4), 4)), 
simplify = F) 

Wie kann ich die Anzahl, wie oft die gleichen Datenrahmen erfolgt in der Liste zählen?

+0

Mehrere Datenrahmen können mehrmals vorkommen. Für zB - Dataframe 'A' kann 2 mal vorkommen, Dataframe' B' kann 3 mal vorkommen. Was wäre Ihre erwartete Leistung? –

+0

Ein weiterer verschachtelter Datenrahmen vielleicht, wo jeweils eine Spalte der eindeutigen Datenrahmen aus der ersten Liste und dann eine n/counts-Spalte ist? – DonCiccio

Antwort

0

Zuerst sollten Sie id die einzigartigen data.frames:

unique.df <- unique(list.df) 

Dann berechnen Auftreten von jedem von ihnen auf dem list.df Looping und zählen, wie viele Zeit, die sie occure:

n_occurence <- NULL 
for (elt in unique.df){ 
    n_occ <- 0 # A counter of occurence for this e 
    for (df in list.df){ 
    if (identical(elt, df)){ # If df is exactly elt, we count it 
     n_occ <- n_occ + 1 
    } 
    } 
    n_occurence <- c(n_occurence, n_occ) 
} 

n_occurence ist ein Liste der Anzahl der Vorkommen jedes Elements von unique.df.

und zu kontrollieren:

> sum(n_occurence) == 1000 
[1] TRUE 

Jetzt ist es an Ihnen, ihm die Form zu geben, die Sie wollen würde ...


Nur aus curioisty ... warum wollen Sie das zu tun? Was ist dein Anwendungsfall?

Verwandte Themen