ejemplos datos consultas complejas sql r dataframe

consultas - ejemplos de sql en base de datos



R equivalente a SELECT DISTINCT en dos o más campos/variables (3)

La respuesta de @ Marek es obviamente correcta, pero puede estar desactualizada. La versión actual de dplyr (0.7.4) permite un código aún más simple:

Simplemente use:

df %>% distinct(var1, var2)

Si desea mantener todas las columnas, agregue

df %>% distinct(var1, var2, .keep_all = TRUE)

Supongamos que tengo un df de marco de datos con dos o más columnas, ¿existe una manera fácil de usar la función R unique() u otra función de R) para crear un subconjunto de combinaciones únicas de dos o más columnas?

Sé que puedo usar sqldf() y escribir una consulta fácil "SELECT DISTINCT var1, var2, ... varN" , pero estoy buscando una forma de R para hacer esto.

Se me ocurrió intentar ftable forzado a un marco de datos y usar los nombres de los campos, pero también obtengo las tabulaciones cruzadas de combinaciones que no existen en el conjunto de datos:

uniques <- as.data.frame(ftable(df$var1, df$var2))


Para MANTENER todas las demás variables en df usa esto:

unique_rows <- !duplicated(df[c("var1","var2")]) unique.df <- df[unique_rows,]

Otro método menos recomendado es usar row.names () # (vea el comentario de David a continuación):

unique_rows <- row.names(unique(df[c("var1","var2")])) unique.df <- df[unique_rows,]


trabajos unique en data.frame tan unique(df[c("var1","var2")]) debe ser lo que usted desea.

Otra opción es distinct del paquete dplyr :

df %>% distinct(var1, var2) # or distinct(df, var1, var2)

Nota:

Para versiones anteriores de dplyr ( <0.5.0, 2016-06-24 ) se requiere un paso adicional distinct

df %>% select(var1, var2) %>% distinct

(o forma antigua distinct(select(df, var1, var2)) ).