J'ai deux noms de données. Pour des exemples bien disons qu'ils ressemblent à ceci:Sous-ensemble d'une trame de données basée sur le contenu d'une autre trame de données
df1 <- data.frame(x=rep(letters[1:26], 16))
df2 <- data.frame(y=letters[1:4])
Ce que je voudrais faire est de sous-ensemble DF1 »pour contenir les lignes dont la valeur correspond à la première colonne une valeur dans la première colonne de « DF2 ».
Maintenant, je l'ai essayé:
subset(df1, df1$x == df2$y)
Mais cela me dit que je dois de taille égale data.frames. Pensées?
df1 [qui (df1 $ x% en% df2 $ y), "x"] <- merci! –
Vous pouvez supprimer le 'which' comme vous pouvez l'indexer directement avec un vecteur de booléens - donc' df1 [df1 $ x% dans% df2 $ y, "x"] 'est plus court. J'aime 'which()' car je veux parfois juste les indices pour m'assurer que j'obtiens les bons résultats intermédiaires. –
Comment sous-estimeriez-vous df1 supérieur à df2 au lieu de correspondre? – chimpsarehungry