una tablas tabla seleccionar observaciones filas extraer especificas eliminar editar data columnas columna agregar r

tablas - seleccionar filas especificas en r



¿Cómo eliminar filas y columnas específicas de una matriz de una manera más inteligente? (3)

Digamos que t1 es:

t1 <- array(1:20, dim=c(10,10)) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] 1 11 1 11 1 11 1 11 1 11 [2,] 2 12 2 12 2 12 2 12 2 12 [3,] 3 13 3 13 3 13 3 13 3 13 [4,] 4 14 4 14 4 14 4 14 4 14 [5,] 5 15 5 15 5 15 5 15 5 15 [6,] 6 16 6 16 6 16 6 16 6 16 [7,] 7 17 7 17 7 17 7 17 7 17 [8,] 8 18 8 18 8 18 8 18 8 18 [9,] 9 19 9 19 9 19 9 19 9 19 [10,] 10 20 10 20 10 20 10 20 10 20

Quiero eliminar la fila 4-6 y la columna 7-9 de esta matriz.

Sé cómo eliminarlo uno por uno usando

t2 <- t1[,-7] t3 <- t2[,-8] t4 <- t3[,-9] t5 <- t4[-4,] t6 <- t5[-5,] t7 <- t6[-6,]

Sin embargo, creo que es la forma más estúpida de hacerlo. ¿Te importaría aconsejarte algunas formas más inteligentes de hacerlo?


Puedes usar

t1<- t1[-4:-6,-7:-9]

o

t1 <- t1[-(4:6), -(7:9)]

o

t1 <- t1[-c(4, 5, 6), -c(7, 8, 9)]

Puede pasar vectors para seleccionar rows/columns que se eliminarán. Los primeros dos métodos son útiles si está intentando eliminar filas / columnas continuas. El tercer método es útil si está intentando eliminar rows/columns discretas .

> t1 <- array(1:20, dim=c(10,10)); > t1[-c(1, 4, 6, 7, 9), -c(2, 3, 8, 9)] [,1] [,2] [,3] [,4] [,5] [,6] [1,] 2 12 2 12 2 12 [2,] 3 13 3 13 3 13 [3,] 5 15 5 15 5 15 [4,] 8 18 8 18 8 18 [5,] 10 20 10 20 10 20


Tu puedes hacer:

t1<- t1[-4:-6,-7:-9]


> S = matrix(c(1,2,3,4,5,2,1,2,3,4,3,2,1,2,3,4,3,2,1,2,5,4,3,2,1),ncol = 5,byrow = TRUE);S [,1] [,2] [,3] [,4] [,5] [1,] 1 2 3 4 5 [2,] 2 1 2 3 4 [3,] 3 2 1 2 3 [4,] 4 3 2 1 2 [5,] 5 4 3 2 1 > S<-S[,-2] > S [,1] [,2] [,3] [,4] [1,] 1 3 4 5 [2,] 2 2 3 4 [3,] 3 1 2 3 [4,] 4 2 1 2 [5,] 5 3 2 1

``

Simplemente usando el comando y S <- S [, 2] elimina la segunda columna. De manera similar, para eliminar una fila para eliminar la segunda fila S <- S [-2,]