Je posséde de nombreux tableaux, qui vont posséder entre 2 et 3 colonne et une centaine de lignes chacun. Les tableaux sont remplis de valeurs allant de 0 à des valeurs indéterminées. Mon but étant de remplacer chaque valeur valant NA ou 0 par 0, et chaque valeur supérieure à 1 par 1. J'ai donc crée la fonction suivante dans le but de la rentrer dans une fonction lapply :
Code : Tout sélectionner
f <- function(X){
X <- replace(X, is.na(X),0)
X$C1[X$C1>0]<-1
X$C2[X$C2>0]<-1
X$C3[X$C3>0]<-1
X <- return(X)
}
Mon problème étant que comme certains de mes tableaux possédent seulement 2 colonnes (C1 et C2) ma boucle m'envoie le message d'erreur suivant lorsqu'elle rencontre un tableau à 2 colonnes :
Code : Tout sélectionner
Error in `$<-.data.frame`(`*tmp*`, "C3", value = numeric(0)) :
le tableau de remplacement a 0 lignes, le tableau remplacé en a 98
Ce que je voudrais ce que pour les tableaux à 2 colonnes ma fonction crée une colonne C3 avec pour chaqu'une des 98 lignes la valeur 0. J'ai essayé plusieurs combinaisont avec "if" et "lenght" (et en m'inspirant des termes rencontrés lors des messages d'erreurs) mais je n'y suis pas arrivé..
Merci d'avance pour vos conseils