Ho un dataframe con la struttura del pannello: 2 osservazioni per ogni unità da due anni:Come controllare i nomi di nuove variabili dopo la diffusione di tidyr?
library(tidyr)
mydf <- data.frame(
id = rep(1:3, rep(2,3)),
year = rep(c(2012, 2013), 3),
value = runif(6)
)
mydf
# id year value
#1 1 2012 0.09668064
#2 1 2013 0.62739399
#3 2 2012 0.45618433
#4 2 2013 0.60347152
#5 3 2012 0.84537624
#6 3 2013 0.33466030
vorrei ridisegnare questi dati a grande formato che può essere fatto facilmente con tidyr::spread
. Tuttavia, poiché i valori della variabile year
sono numeri, anche i nomi delle mie nuove variabili diventano numeri che ne rendono più difficile l'ulteriore utilizzo.
spread(mydf, year, value)
# id 2012 2013
#1 1 0.09668064 0.6273940
#2 2 0.45618433 0.6034715
#3 3 0.84537624 0.3346603
So che posso facilmente rinominare le colonne. Tuttavia, se mi piacerebbe rimodellare in una catena con altre operazioni, diventa scomodo. Per esempio. la seguente riga ovviamente non ha senso.
library(dplyr)
mydf %>% spread(year, value) %>% filter(2012 > 0.5)
I seguenti lavori, ma non è che concisa:
tmp <- spread(mydf, year, value)
names(tmp) <- c("id", "y2012", "y2013")
filter(tmp, y2012 > 0.5)
Qualsiasi idea di come posso cambiare i nuovi nomi di variabile all'interno spread
?