Comment définir la valeur d'une colonne basée sur les valeurs d'une autre colonne dans la R
Je suis en train d'ajouter une nouvelle colonne basée sur des valeurs dans une autre colonne. (En gros, si l'autre colonne est manquant ou 0, définir la nouvelle valeur 0 ou 1)
Quel est le problème avec ce code ci-dessous?
times=nrow(eachfile)
for(i in 1:times)
{eachfile$SalesCycleN0[i] <- ifelse(eachfile$R[i]==NA | eachfile$R[i]==0,0,1 ) }
table(eachfile$SalesCycleN0)
- De deux choses. La boucle et le test.
- Il serait plus facile pour quelqu'un pour vous aider, si vous deviez donner un exemple de données avec un exemple de ce que vous voulez ressembler lorsque vous avez terminé.
Vous devez vous connecter pour publier un commentaire.
Aussi longtemps que vous avez testé que la colonne ne contient que 0, 1 et NA je ferais:
Rien n'est jamais "==" pour NA. Viens de le faire (pas de boucle):
Si vous cherchez un peu plus d'économie dans le code de ce travail:
grepl
retourne la valeur FALSE pour NA.Un moyen plus efficace de le faire est d'utiliser le
sapply
fonction, plutôt que d'utiliser unfor
boucle (très pratique en cas de grand ensemble de données). Voici un exemple:Dans votre cas: