-----Original Message-----
From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of Cacique
Samurai
Sent: Monday, January 9, 2017 6:22 AM
To: R help <r-help at r-project.org>
Subject: [R] using if else function to complete a column in data frame
Hello all!
I?m trying to complete the "movimento" column in dataframe based in the
values of "kmr" column in two sequential lines, as below:
data example (dput in the end of email):
ID kmr movimento
5 10.700 314.20 NA
1 10.700 278.74 NA
2 10.700 278.74 NA
3 10.700 278.74 NA
4 10.700 278.74 NA
494 100.700 269.94 NA
500 100.700 278.74 NA
499 100.700 314.20 NA
495 100.700 278.74 NA
498 100.700 278.74 NA
496 100.700 255.40 NA
497 100.700 255.10 NA
Once I have different IDs, I wrote this function:
move = function (x){
for (j in x$ID){
for (i in 2:length(x$kmr)-1){
if (x$kmr[i+1] < x$kmr[i]) {
x$movimento[i+1] <- "jusante"
} else if (x$kmr[i+1] > x$kmr[i]) {
x$movimento[i+1] <- "montante"
} else {
x$movimento[i+1] <- "parado"
}
}
}
return (x)
}
Worked pretty well with just one ID, but with many IDs the function didn?t
detach different IDs.
ID kmr movimento
5 10.700 314.20 <NA>
1 10.700 278.74 jusante
2 10.700 278.74 parado
3 10.700 278.74 parado
4 10.700 278.74 parado
494 100.700 269.94 jusante <-- this should be <NA>
500 100.700 278.74 montante
499 100.700 314.20 montante
495 100.700 278.74 jusante
498 100.700 278.74 parado
496 100.700 255.40 jusante
497 100.700 255.10 jusante
I also tried remove the first If condition and pass this function using lapply in
the splitted original data-frame, but didn?t work as well.
Some onde can help?
Thanks in advanced,
Raoni
structure(list(ID = c("10.700", "10.700", "10.700", "10.700", "10.700",
"100.700", "100.700", "100.700", "100.700", "100.700", "100.700", "100.700"),
kmr = c(314.2, 278.74, 278.74, 278.74, 278.74, 269.94, 278.74, 314.2, 278.74,
278.74, 255.4, 255.1),
movimento = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA)), .Names = c("ID", "kmr", "movimento"), row.names = c(5L, 1L, 2L, 3L,
4L, 494L, 500L, 499L, 495L, 498L, 496L, 497L), class = "data.frame")
--
Raoni Rosa Rodrigues
Research Associate of Fish Transposition Center CTPeixes Universidade
Federal de Minas Gerais - UFMG Brasil rodrigues.raoni at gmail.com