oreshape | R Documentation |
Es un wrapper del reshape de data.table, la idea es que sea más sencillo y parecido al de Stata en donde se debe identificar a todo evento una serie de parametros. Evita que de wide a long las variables sean del mismo tipo si son stub, el n de variables stub debe ser el mismo, pero no es necesario que el identificador de tiempo sea un numero. Todos los parametros (excepto la data) van entre comillas
oreshape( idvar = NULL, stub = NULL, tiempo = NULL, data = NULL, direction = NULL )
idvar |
variable que identifica a cada sujeto o unidad muestral |
stub |
base o prefijo de las medidas repetidas, de long a wide es la medicion repetida, puede ser un vector de stubs |
tiempo |
es la variable que indica la medida repetida, de wide a long es el nombre que tendra luego de la transformacion |
data |
datos en formato data.table, si no viene asi se aplica este formato |
direction |
direccion de la transformacion 'long' o 'wide' en minuscula |
devuelve un data.table object
# # Armar datos ----------------------- # # El indometh es de "datasets" # write.table(Indometh, "datos.txt", sep = ",", row.names = FALSE) # datos <- fread("datos.txt") # setnames(datos, c("Subject", "time", "conc"), c("id", "tiempo", "num")) # # # Crear una variable fija # datos[(datos[, id] %in% c(1, 2, 3)), sexo := "Hombre"] # datos[(datos[, id] %in% c(4, 5, 6)), sexo := "Mujer"] # # # Crear una data adicional pero en string # datos[, char := rep(letters[], length.out = 66)] # # # Desbalancear data # datos <- datos[-c(15:18, 52:53, 60),] # datos[, .N, by = id] # # # Simplificar el tiempo # datos[, .N, by = tiempo] # lookup <- data.table(tiempo = unique(datos[, tiempo]), to = 1:11) # datos[lookup, on = "tiempo", tiempo := i.to] # rm(lookup) # # # Agregar algunos NA # datos[c(4, 23, 45), num := NA] # datos[c(2, 15, 25), char := NA] # # setnames(datos, 'tiempo', 'semana') # # # # Pruebas --------------------------- # # Con 2 variables stub # head(datos) # wideDF <- oreshape(idvar = "id", stub = c("num", "char"), # tiempo = "semana", data = datos, direction = "wide") # longDF <- oreshape(idvar = "id", stub = c("num_", "char_"), # tiempo = "semana", data = wideDF, direction = "long") # # # Con 1 variable stub # datos[, char := NULL] # wideDF <- oreshape(idvar = "id", stub = "num", # tiempo = "semana", data = datos, direction = "wide") # longDF <- oreshape(idvar = "id", stub = "num_", # tiempo = "semana", data = wideDF, direction = "long")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.