vacio tablas studio seleccionar filtrar filas eliminar datos data crear contar columnas columna agregar r data.table

tablas - seleccionar columnas en r



Eliminar filas condicionalmente de una tabla de datos en R (1)

En este escenario no es tan diferente a data.frame

data <- data[ menuitem != ''coffee'' | amount > 0]

Eliminar / agregar fila por referencia es para ser implementado. Encontrarás más información en esta pregunta.

Respecto a la velocidad:

1 Puedes beneficiarte de las claves haciendo algo como:

setkey(data, menuitem) data <- data[!"coffee"]

que será más rápido que los data <- data[ menuitem != ''coffee''] . Sin embargo, para aplicar los mismos filtros que preguntaste en la pregunta, necesitarás una combinación continua (he terminado mi hora de almuerzo, puedo agregar algo más tarde :-)).

2 Incluso sin datos clave. La mesa es mucho más rápida para una tabla relativamente grande (velocidad similar para un puñado de filas)

dt<-data.table(id=sample(letters,1000000,T),var=rnorm(1000000)) df<-data.frame(id=sample(letters,1000000,T),var=rnorm(1000000)) library(microbenchmark) > microbenchmark(dt[ id == "a"], df[ df$id == "a",]) Unit: milliseconds expr min lq median uq max neval dt[id == "a"] 24.42193 25.74296 26.00996 26.35778 27.36355 100 df[df$id == "a", ] 138.17500 146.46729 147.38646 149.06766 154.10051 100

Tengo una tabla de datos con campos {id, menuitem, amount}.

Estos son datos de transacciones; por lo tanto, las identificaciones son únicas, pero se repiten menuitem. Ahora, quiero eliminar todas las entradas donde menuitem == ''coffee'' .

Además, desea eliminar todas las filas donde la amount <= 0 ;

¿Cuál es la forma correcta de hacer esto en data.table?

Puedo usar data$menuitem!=''coffee'' y luego indexar int en data [], pero eso no es necesariamente eficiente y no se aprovecha de data.table.

Cualquier puntero en la dirección correcta son apreciados.