seleccionar - Cómo eliminar filas duplicadas por una columna en una matriz R
funcion contar si en r (2)
Estoy tratando de eliminar filas duplicadas por una columna (por ejemplo, la primera columna) en una matriz R. ¿Cómo puedo extraer el conjunto único por una columna de una matriz? he usado
x_1 <- x[unique(x[,1]),]
Mientras que el tamaño es correcto, todos los valores son NA
. Así que en su lugar, lo intenté
x_1 <- x[-duplicated(x[,1]),]
Pero las dimensiones eran incorrectas.
Como necesita los índices de las filas únicas, use duplicated
cuando lo intente. El problema estaba usando -
lugar de !
, entonces intente:
x[!duplicated(x[,1]),]
Creo que estás confundido acerca de cómo funciona el subconjunto en R. unique(x[,1])
devolverá el conjunto de valores únicos en la primera columna. Si luego intentas subcontratar usando esos valores, R cree que te estás refiriendo a las filas de la matriz. Así que es probable que obtengas NA porque los valores se refieren a filas que no existen en la matriz.
Su otro intento se opone al hecho de que duplicated
devuelve un vector booleano , no un vector de índices. De modo que colocar un signo menos delante lo convierte en un vector de 0 y -1, lo que, de nuevo, R interpreta como una referencia a las filas.
Intenta reemplazar el ''-'' con un ''!'' frente a duplicated
, que es el operador de negación booleana. Algo como esto:
m <- matrix(runif(100),10,10)
m[c(2,5,9),1] <- 1
m[!duplicated(m[,1]),]