J'ai un jeu de données sur lequel je voudrais effectuer la transformation suivante: Pour chaque ID dans x_1
, changez le plus grand nombre négatif (le plus proche de zéro) sous z_1
en zéro. Laissez les autres nombres négatifs ou positifs tels qu'ils sont. S'il n'y a pas de nombre négatif ou s'il y a un zéro, ne faites rien.Tricky Manipulation des données
x_1 <- c("A1", "A1","A1", "B10", "B10", "B10","B10", "B500", "C100", "C100", "C100", "D40", "G100", "G100")
z_1 <- c(1.1, 1.4, 1.6, -1.0, -2.2, 3, 2.3, 2.0, -3.4, -4.1, 2, 2, 2.4, -3.5)
A <- data.frame(x_1, z_1)
Résultat souhaité:
x_1 z_1
A1 1.1
A1 1.4
A1 1.6
B10 -2.2
B10 0
B10 2.3
B10 3.0
B500 2.0
C100 -4.1
C100 0
C100 2.0
D40 2.0
G100 0
G100 2.4
J'ai essayé quelques petites choses à l'aide dplyr mais je ne semble pas obtenir le bon résultat.
A3 <- A %>%group_by(x_1, z_1)%>% summarize(neg = max(z_1 < 0))
Clairement, ce code est incomplet mais j'apprécierais vraiment n'importe quelle aide avec ceci.
Merci pour votre réponse! –