[R-es] Reshape sobre una lista de data frames

Rolando Valdez rv@|dezr @end|ng |rom gm@||@com
Lun Abr 5 22:34:19 CEST 2021


Estimada Comunidad, espero que todo marche bien,

Estoy intentando crear una base de datos en forma de panel, tengo problemas
con el Reshape.

La historia es que, descargué datos de 14 variables de 43 países para el
periodo 2004-2015. La información la guardé en un archivo de excel en donde
cada libro corresponde a 1 variable, por lo tanto dentro de cada libro
tengo un arreglo de 44 renglones (1 por cada país) y 13 columnas (1 por
cada año).

El primer paso consistió en importar cada uno de los 14 libros de excel y
generar una lista con 14 dataframes lo cual ya está. Ahora necesito pasar
cada data frame de la lista de formato wide a long y no logro descifrar
cómo ejecutar la instrucción.

> ## Importing data from Excel
>
> # Extracting the names of the sheets
>
> sheetnames <- excel_sheets(path = "BrainDrainDB.xlsx")
>
> # Reading sheets from the workbook
>
> list_sheets <- lapply(sheetnames, function(x) read_excel(path =
"BrainDrainDB.xlsx", sheet = x))

------- Hasta aquí todo bien ---------
>
> # Reshaping wide to long
>
> reshaping <- lapply(list_sheets, function(x) reshape(x, varying =
list_sheets[[1]][,2:13],
+                                                   v.names = sheetnames,
+                                                   timevar = "yr", idvar =
c("Country", "yr"),
+                                                   times = 2004:2015,
direction = "long"))
 Error in reshapeLong(data, idvar = idvar, timevar = timevar, varying =
varying,  :
  'varying' arguments must be the same length

Agradezco de antemano cualquier sugerencia.

-- 
Rol~

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es