This is something that should be simple but I can't figure it out. I have a variable var and need to create another variable var2 that is calculated adding the value of var from the first observation. The problem is that the value of var2 at the first observation (a) should be 14, not 28. I tried a solution using the function first but it didn't work out and that's because everything is added to 14, even the first observation.
CODE:
library(dplyr)
data_a <- read.csv(text = "
obs,var
a, 14
b, 124
c, 180
d, 40
e, 20
")
data_b <- data_a %>%
mutate(var2 = first(var) var)
OUTPUT:
The expected result should have a value of 14 for var2 at observation a.
CodePudding user response:
Check if row_number is bigger than 1, then update:
data_a %>%
mutate(var2 = ifelse(row_number() > 1, first(var) var, var))
# obs var var2
# 1 a 14 14
# 2 b 124 138
# 3 c 180 194
# 4 d 40 54
# 5 e 20 34

