Je travaille avec des données classées regroupées qui ont une latitude et une longitude que je voudrais ajouter 0,00075 au champ de latitude chaque fois que le rang augmente de 1.
Voici l'un des 5000 groupes et on ne sait pas quel sera le rang maximal, donc j'ai besoin que cela se fasse au sein d'un group_by en utilisant de préférence dplyr.
Je sais que je peux utiliser un
group_by(loc_id) %>% mutate(y = if_else(rank > 1, as.character(Y + 0.00075), as.character(Y))
mais cela ne fonctionne qu'une seule fois.
Voici du code r pour construire un dataframe plein de données
id <- c(1,2,3,4,5)
loc_id <- c(77,77,77,77,77)
x <- c(-74.001981, -74.001981, -74.001981, -74.001981, -74.001981)
y <- c(40.736038, 40.736038, 40.736038, 40.736038, 40.736038)
views <- c(55,45,66,22,99)
rank <- c(3,4,2,5,1)
data <- data.frame(id, loc_id, x, y, views, rank)