Kenneth Roy Cabrera Torres
miércoles, 18 de septiembre de 2019
str(split)
x
es un vector o lista.f
es un factor o una lista de factores.drop
indica si los niveles que salgan vacíos se
deben excluir o no.x <- c(rnorm(10), runif(10), rnorm(10, 1))
f <- gl(3, 10)
split(x, f)
Uso combinado de lapply y split.
lapply(split(x, f), mean)
En una base de datos.
library(datasets)
head(airquality)
s <- split(airquality, airquality$Month)
lapply(s, function(x) colMeans(x[, c("Ozone", "Solar.R", "Wind")]))
sapply(s, function(x) colMeans(x[, c("Ozone", "Solar.R", "Wind")]))
sapply(s, function(x) colMeans(x[, c("Ozone", "Solar.R", "Wind")], na.rm = T))
x <- rnorm(10)
f1 <- gl(2, 5)
f2 <- gl(5, 2)
f1
f2
interaction(f1, f2)
str(split(x, list(f1, f2)))
str(split(x, list(f1, f2), drop = TRUE))
Date
.POSIXct
o POSIClt
.Las fechas se representan por la clase Date
y se
convierte de una sarta usando la función as.Date()
.
x <- as.Date("1970-01-01")
x
unclass(x)
unclass(as.Date("1970-01-02"))
unclass(as.Date("1967-05-30"))
El tiempo se representa mediante el uso de las clases
POSIXct
o POSIXlt
.
POSIXct
es un entero muy grande, y se usa para guardar
fechas en base de datos data.frame
.POSIXlt
es una lista y guarda otra información como
el día de la semana, el día del añor, el mes y el día
del mes.Algunas funciones trabajan en fechas y tiempo.
weekdays
: Devuelve el día de la semana.months
: Devuelve el nombre del mes.quarters
: Devuelve el número del trimestre (“Q1”, “Q2”, “Q3”, o “Q4”)Ejemplo 1:
x <- Sys.time()
x
p <- as.POSIXlt(x)
names(unclass(p))
p$sec
x <- Sys.time()
x
unclass(x)
x$sec
p <- as.POSIXlt(x)
p$sec
La función srtptime
para convertir fechas
en formatos diferentes al tipo fecha.
sarta_fechas <- c("Enero 10, 2012 10:40", "diciembre 8, 2011 9:10",
"MAYO 30, 2015 23:59")
x <- strptime(sarta_fechas, "%B %d, %Y %H:%M")
x
class(x)
x1 <- as.POSIXct(x)
x1
class(x1)
Use help(strptime)
para identificar los códigos de las fechas.
Se pueden hacer operaciones de + y -, como también comparaciones (==, <=, etc).
x <- as.Date("2012-01-01")
y <- strptime("9 ene 2011 11:34:21", "%d %b %Y %H:%M:%S")
x-y
x <- as.POSIXlt(x)
x-y
Se lleva registro de los años bisiestos, segundos adicionales, horario de invierno y zonas horarias.
x <- as.Date("2012-03-01"); y <- as.Date("2012-02-28")
x-y
x <- as.POSIXct("2012-10-25 01:00:00")
y <- as.POSIXct("2012-10-25 01:00:00", tz = "GMT")
y-x
x1 <- as.POSIXct(strptime("1 de mayo de 1992 00:00","%d de %B de %Y %H:%M"))
x1
weekdays(x1)
x2 <- as.POSIXct(strptime("2 de mayo de 1992 00:00","%d de %B de %Y %H:%M"))
x2
weekdays(x2)
x2 - x1
x3 <- as.POSIXct(strptime("3 de mayo de 1992 00:00","%d de %B de %Y %H:%M"))
x3
weekdays(x3)
x2 - x1
x3 - x2
Cuando algo salga mal, pregúntese:
traceback
: Imprime la pila de las llamadas a funciones.debug
: Marca una función en modo de depuración para seguir
la ejecución paso a paso.browser
: Suspende la ejecución y la pone en modo debug
.trace
: Permite insertar código de depuración en una función
en sitios específicos.recover
: Permite modificar el comportamiento frente al error,
de tal manera que puede revisar la pila de llamadas.La técnica más artesanal de usar las funciones print
y cat
dentro del código de las funciones.
mean(w)
traceback()
lm(w ~ z)
traceback()
debug(lm)
lm(w ~ z)
undebug(lm)
oopt <- options()
options(error = recover)
read.csv("archivoinexistente")
options(oopt)
message
, warning
y error
.
error
detiene la ejecución del código.traceback
, debug
, browse
, trace
y recover
para encontrar los problemas.