Home > front end >  How to classify a variable based on the value in the row above it in R?
How to classify a variable based on the value in the row above it in R?

Time:12-07

I have a data frame with four columns. I would like to create a new column where the value depends on the other column row above. For example, I have a data set like this:

Day Precipitation Condition
1 3 Wet
2 0 Dry
3 3 Wet

I would like the final product to look something like this?

Day Precipitation Condition Day Before
1 3 Wet
2 0 Dry Wet
3 3 Wet Dry

Any ideas on how I can do this?

CodePudding user response:

You may try

library(dplyr)

df %>% 
  mutate('Day Before' = lag(Condition))
    
  Day Precipitation Condition Day Before
1   1             3       Wet       <NA>
2   2             2       Dry        Wet
3   3             3       Wet        Dry

CodePudding user response:

Plain R approach:

To define the Day Before column , add NA to the beginning of the Condition column (df$Condition) and remove the last element in that vector (df$condition[-length(df$condition)).

df$DayBefore <- c(NA,df$Condition[-length(df$Condition)])

df
    Day Percepitation Condition DayBefore
1   1             3       wet      <NA>
2   2             0       dry       wet
3   3             3       wet       dry
  • Related