0
votes

Référence précédente rangée dans une donnée.frame

J'ai un problème très simple. J'essaie de définir la valeur de la colonne x sur 0 si la colonne Y [N,] ne correspond pas à la colonne Y [N-1,]. Mon problème est que je ne sais pas comment faire référence à une valeur de ligne antérieure dans R, puis utilisez cette valeur pour définir la valeur d'une autre colonne.

Comme exemple: xxx

x [3,2] est 0 parce que y [3,1] ne correspond pas y [2,1].

J'ai besoin de trouver essentiellement une instance de cette instance dans un grand jeu de données et définissez la valeur x correspondante sur 0.

Data $ x <- 0 si les données $ y $ [n] =! Data $ Y [N-1]

Y a-t-il une solution simple à cela dans R? Cela se sent vraiment comme si cela devrait y être.

merci


1 commentaires

Si l'une des réponses répond à votre problème, veuillez considérer accepter . Merci


3 Réponses :


1
votes

donné xxx

une option serait diff xxx

L'idée est de vérifier si x [ i] - x [i -1] est égal à zéro qui donne un vecteur logique que nous multiplions par x


0 commentaires

1
votes

De même au poteau de @Markus, avec dplyr vous pouvez faire: xxx


0 commentaires

0
votes

Un autre BASE R CODE> OPTION

df <- structure(list(Y = c(1L, 1L, 2L, 2L), X = c(5L, 1L, 0L, 2L)), 
  class = "data.frame", row.names = c(NA, -4L))


0 commentaires