xtabs

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

Marchand Marc-Antoine
Messages : 9
Enregistré le : 22 Oct 2018, 10:33

xtabs

Messagepar Marchand Marc-Antoine » 23 Avr 2020, 08:28

Bonjour,

j'applique le code suivant :

Code : Tout sélectionner


id_quadra<-c("a","b","c","d","a","b","c","d","a","b","c","d","a")
n.passage<-c("1","1","1","1","2","2","2","2","3","3","3","3","4")
Vent<-c("0","NA","0","1","NA","0.3","0.2","NA","2","NA","2.1","1.8","0")
data<-as.data.frame(cbind(id_quadra,n.passage,Vent),dec=".",stringsAsFactors = FALSE)

data_vent<-xtabs(as.numeric(Vent)~as.factor(id_quadra)+as.factor(n.passage), data = data, addNA=TRUE)
data_vent
colnames(data_vent) <- c("vent_1", "vent_2", "vent_3")
id_quadra<-row.names(data_vent)
data_vent<-data.frame(cbind(id_quadra,data_vent))
data_vent



Je souhaiterais que les occurrences non spécifiées dans 'data' ne prennent pas la valeur de '0.0' lorsque la fonction xtabs() est appliquée, mais la valeur 'NA'. l'argument 'addNA=TRUE' fonctionne bien mais uniquement pour les occurrences existantes dans 'data'. Étant donnée que j'ai des vraies valeurs à '0.0' dans 'data' je ne peux pas les distinguer de celles générées par la fonction xtabs(). Je pourrais modifier mes valeurs de '0.0' avant le xtabs() puis les reconvertir ensuite pour entre temps transformer les '0.0' générés par xtabs() en 'NA' mais je suppose qu'il existe un moyen plus propre (je n'ai pas trouvé...) ?

Merci pour vos conseils.

Marco

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

Re: xtabs

Messagepar François Bonnot » 23 Avr 2020, 11:53

Bonjour,
Une solution consiste à compléter data avec des NA pour les combinaisons inexistantes, par exemple:

Code : Tout sélectionner

grid <- expand.grid(id_quadra=unique(data$id_quadra),n.passage=unique(data$n.passage))
data <- merge(data,grid,all.y=TRUE,sort=FALSE)
François


Retourner vers « Questions en cours »

Qui est en ligne

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