J'ai deux trames de données df1 et df2.R: comment sélectionner des données à partir d'une trame de données en fonction de règles spécifiques et ajouter les données en tant que nouvelles colonnes à une trame de données existante
df1 <- data.frame(x1=c("A35", "A41", "A49"),
x2=c(8, 24, 33),
x3=c(15, 63, 54))
df2 <- data.frame(y1=c("A35", "A38", "A41", "A41", "A49"),
y2 = c(9, 20, 24, 32, 84))
Je veux sélectionner les lignes de la DF2 en fonction des trois critères suivants
(1) Le y1 de DF2 correspond x1 de DF1;
(2) Le y2 de DF2> = x2 de DF1
(3) Le y2 de DF2 = < x3 de DF1
La réunion de données, les critères seront ajoutés à DF1 de nouvelles colonnes. Si la ou les lignes de df1 ont plus d'une correspondance, ces correspondances supplémentaires seront également ajoutées en tant que nouvelles colonnes.
Les résultats attendus sont
data.frame(x1=c("A35", "A41", "A49"),
x2=c(8, 24, 33),
x3=c(15, 63, 54),
z1 = c("A35", "A41", ""),
z2 = c(9, 24,""),
z3 = c("", "A41", ""),
z4 = c("", 32, ""))
x1 x2 x3 z1 z2 z3 z4
A35 8 15 A35 9
A41 24 63 A41 24 A41 32
A49 33 54
Merci à l'avance!
Pourquoi 'df2' ont 5 lignes, mais la trame de données résultante a seulement 4 nouvelles colonnes? –
df2 a 5 lignes, mais seulement 3 lignes correspondent à df1. La ligne 1 de df1 a une correspondance df2 et la ligne 2 de df1 a deux correspondances df2. La correspondance de ligne 1 et la première correspondance de ligne 2 de df2 sont ajoutées en tant que nouvelles colonnes (z1, z2). La deuxième ligne 2 correspond aux nouvelles colonnes (z3 et z4). J'espère que je l'ai clarifié. – mi3567
comment pouvez-vous comparer y2 de df2> = x2 de df1 s'il y a plus de valeurs y2 que de valeurs x2? vous ne pouvez pas aller élément par élément ... ou êtes-vous en train de dire que la condition 1 est vraie, alors la condition 2 et 3 doivent également être maintenues. ou est-ce que 1 ou 2 ou 3 doit tenir? –