je la df suivante:R - test si la valeur est la même que celle de la cellule au-dessus
name color
A red
B red
C green
D red
E red
F red
Et je veux tester les valeurs dans la colonne « couleur » pour voir si elles sont les mêmes que les valeurs de la ligne ci-dessus et à écrire une nouvelle colonne ... je peux le faire en utilisant les éléments suivants:
> df$same <- ifelse(df$color == df$color[c(NA,1:(nrow(df)-1))], 1, 0)
pour me donner:
name color same
A red NA
B red 1
C green 0
D red 0
E red 1
F red 1
Mais est-il moyen plus propre de le faire? (Je l'utilise tout le temps) ...
Probablement pas plus propre, mais voici une alternative: 'as.integer (c (NA, diff (as.integer (dat $ color)) == 0)) '. – lmo