Preguntas etiquetadas con data.table

El paquete R data.table es una extensión de data.frame creada para un rápido análisis de datos en memoria. Utilice la etiqueta dt para el paquete DataTables con Shiny (DT).

195
¿Cómo se elimina una columna por nombre en data.table?

Para deshacerme de una columna llamada "foo" en un data.frame, puedo hacer: df <- df[-grep('foo', colnames(df))] Sin embargo, una vez dfse convierte en undata.table objeto, no hay forma de eliminar una columna. Ejemplo: df <- data.frame(id = 1:100, foo = rnorm(100)) df2 <-...

173
¿Qué significa .SD en data.table en R?

.SDparece útil pero realmente no sé qué estoy haciendo con él. Que significa? ¿Por qué hay un período anterior (punto final)? ¿Qué sucede cuando lo uso? Leí: .SDes un que data.tablecontiene el subconjunto de xdatos de cada grupo, excluyendo las columnas del grupo. Se puede usar al agrupar por i,...

150
¿Cómo eliminar una fila por referencia en data.table?

Mi pregunta está relacionada con la asignación por referencia versus la copia en data.table. Quiero saber si uno puede eliminar filas por referencia, similar a DT[ , someCol := NULL] Quiero saber sobre DT[someRow := NULL, ] Supongo que hay una buena razón por la cual esta función no existe, por...

141
Sustitución de NA por el último valor no NA

En un data.frame (o data.table), me gustaría "completar" NA con el valor anterior que no sea NA más cercano. Un ejemplo simple, el uso de vectores (en lugar de a data.frame) es el siguiente: > y <- c(NA, 2, 2, NA, NA, 3, NA, 4, NA, NA) Me gustaría una función fill.NAs()que me permita...

135
¿Por qué es rbindlist "mejor" que rbind?

Estoy revisando la documentación data.tabley también noté de algunas de las conversaciones aquí sobre SO que rbindlistse supone que es mejor que rbind. Me gustaría saber por qué es rbindlistmejor rbindy en qué escenarios rbindlistrealmente sobresale rbind. ¿Hay alguna ventaja en términos de...

118
Convertir clases de columna en data.table

Tengo un problema al usar data.table: ¿Cómo convierto clases de columna? Aquí hay un ejemplo simple: con data.frame no tengo problemas para convertirlo, con data.table simplemente no sé cómo: df <- data.frame(ID=c(rep("A", 5), rep("B",5)), Quarter=c(1:5, 1:5), value=rnorm(10)) #One way:...

118
Cómo reordenar las columnas de data.table (sin copiar)

Me gustaría columnas de reabastecimiento en mi data.table x, dado un vector de caracteres de nombres de columna, neworder: library(data.table) x <- data.table(a = 1:3, b = 3:1, c = runif(3)) neworder <- c("c", "b", "a") Obviamente podría hacer: x[ , neworder, with = FALSE] # or x[ ,...

113
¿Cuál es el propósito de establecer una clave en data.table?

Estoy usando data.table y hay muchas funciones que requieren que establezca una clave (por ejemplo X[Y]). Como tal, deseo comprender qué hace una clave para configurar correctamente las claves en mis tablas de datos. Una fuente que leí fue ?setkey. setkey()ordena un data.tabley lo marca como...

101
Limpiar los valores `Inf` de un marco de datos R

En R, tengo una operación que crea algunos Infvalores cuando transformo un marco de datos. Me gustaría convertir estos Infvalores en NAvalores. El código que tengo es lento para datos grandes, ¿hay alguna forma más rápida de hacer esto? Digamos que tengo el siguiente marco de datos: dat <-...

93
Obteniendo los mejores valores por grupo

Aquí hay un marco de datos de muestra: d <- data.frame( x = runif(90), grp = gl(3, 30) ) Quiero que el subconjunto dcontenga las filas con los 5 valores superiores de xpara cada valor de grp. Usando base-R, mi enfoque sería algo como: ordered <- d[order(d$x, decreasing = TRUE), ]...