La creación de nuevas variables en I sobre la base de valores de las variables de diferentes filas de una trama de datos

votos
-1

Tengo una trama de datos, df, como la siguiente:

id  t  Happiness  Wealth    
1   1   5          100
2   1   5          100
3   1   5          100
1   2   3           70
2   2   9          170
3   2   2           60

¿Hay una manera de subconjuntos de los datos para que pueda crear una nueva variable que representa la riqueza de un individuo (id) en la vez anterior? Por lo tanto, el valor de la persona 2 en el tiempo 2 será 100.

Publicado el 27/11/2018 a las 16:54
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
0

También se puede conseguir el mismo simplemente la fusión:

df <- data.frame(id = c(1, 1, 2, 2),
            t = c(1, 2, 1, 2),
            wealth = c(10, 15, 12, 17))
previous <- df
previous[,"t"] <- previous[,"t"] +1
df <- merge(df, previous, by = c("id", "t"), all = TRUE, suffixes = c("_current", "_previous"))
na.omit(df)

  id t wealth_current wealth_previous
2  1 2             15              10
5  2 2             17              12
Respondida el 27/11/2018 a las 17:11
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more