library(data.table)
DT1 <- data.table(num = 1:6, group = c("A", "B", "B", "B", "A", "C"))
DT2 <- data.table(group = c("A", "B", "C"))
voglio aggiungere una colonna popular
-DT2
con valore TRUE
ogni volta DT2$group
è contenuto in DT1$group
almeno due volte. Così, nell'esempio di cui sopra, dovrebbe essere DT2
Controllare la frequenza di valore data.table in altri data.table
group popular
1: A TRUE
2: B TRUE
3: C FALSE
quello che sarebbe un modo efficace per arrivare a questo?
esempio Aggiornato:DT2
può effettivamente contenere più gruppi di DT1
, ecco un esempio aggiornato:
DT1 <- data.table(num = 1:6, group = c("A", "B", "B", "B", "A", "C"))
DT2 <- data.table(group = c("A", "B", "C", "D"))
E l'output desiderato sarebbe
group popular
1: A TRUE
2: B TRUE
3: C FALSE
4: D FALSE
'' DT2' ha sempre lo stesso 'gruppo' unico da' DT1'? Se è così, è semplicemente 'DT1 [,. (Popolare = .N> = 2L), per = gruppo]' – Arun
Ciao @Arun, no non lo fa; Ho semplificato l'esempio qui, mi dispiace. '' DT2'' può contenere più gruppi di '' DT1'', nel qual caso popolare dovrebbe essere '' FALSE'' (dato che non è contenuto in '' DT1 $ group'' almeno due volte). – johnl
+1 per una domanda ben formulata –