création de groupes par présence de valeur et de NA dans des colonnes

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Mallory Cals
Messages : 6
Enregistré le : 15 Avr 2020, 12:33

création de groupes par présence de valeur et de NA dans des colonnes

Messagepar Mallory Cals » 15 Avr 2020, 14:01

Bonjour,

J'ai le tableau suivant:
"c1" "c2" "c3" "c4" "c5"
"12" 17.7 18.5 27.3 NA
"14" NA NA NA 15.64
"15" NA NA NA 15.96
"50" 15.0 16.5 25.9 15.6
"53" 18 17 NA 16
"12" 17 18 26.4 NA
"14" NA NA NA 15.7
"50" 15.74 15 26.2 15
"53" 17 15 16.4 NA

Je souhaiterais regrouper les lignes du tableau précédant selon les critères suivants :
* valeur identique dans la colonne C1
* présence de valeur et de NA dans les colonnes C2, C3, C4 et C5 identiques

par exemple:
* 14 et 15 forment un groupe
* 53 et 12 un autre groupe

Y a t il des lignes de commandes me permettant de réaliser cette action en me retournant n tableaux reprenant chacun les lignes des n groupes formés ?

merci d'avance

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: création de groupes par présence de valeur et de NA dans des colonnes

Messagepar Pierre-Yves Berrard » 15 Avr 2020, 14:20

Bonjour,
Mallory Cals a écrit :* 14 et 15 forment un groupe

Pourtant 14 et 15 ne sont pas identiques (premier critère).
PY

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: création de groupes par présence de valeur et de NA dans des colonnes

Messagepar Pierre-Yves Berrard » 15 Avr 2020, 14:21

C'est critère1 OU critère2, peut-être ?
PY

Mallory Cals
Messages : 6
Enregistré le : 15 Avr 2020, 12:33

Re: création de groupes par présence de valeur et de NA dans des colonnes

Messagepar Mallory Cals » 16 Avr 2020, 06:58

Bonjour,

oui c'est critère 1 ou critère 2

Merci

François Bonnot
Messages : 537
Enregistré le : 10 Nov 2004, 15:19
Contact :

Re: création de groupes par présence de valeur et de NA dans des colonnes

Messagepar François Bonnot » 16 Avr 2020, 07:37

Bonjour,
Il faut passer vos données avec dput, voir ici:
http://forums.cirad.fr/logiciel-R/viewtopic.php?f=1&t=3302

Code : Tout sélectionner

df <- structure(list(c1 = c(12L, 14L, 15L, 50L, 53L, 12L, 14L, 50L,
53L), c2 = c(17.7, NA, NA, 15, 18, 17, NA, 15.74, 17), c3 = c(18.5,
NA, NA, 16.5, 17, 18, NA, 15, 15), c4 = c(27.3, NA, NA, 25.9,
NA, 26.4, NA, 26.2, 16.4), c5 = c(NA, 15.64, 15.96, 15.6, 16,
NA, 15.7, 15, NA)), class = "data.frame", row.names = c(NA, -9L
))

La question n'est pas claire.
Pour le critère 2 on obtient la solution avec:

Code : Tout sélectionner

split(df,data.frame(sapply(df[2:5],is.na)),drop=TRUE)

... mais les lignes 5 et 9 (c1=53) sont dans 2 groupes différents pour le critère 1.
Le mieux serait que vous nous indiquiez précisément le résulta attendu.
François


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité