2012-10-16 41 views
32

Hãy nói rằng t1 là:Làm cách nào để xóa các hàng và cột cụ thể khỏi ma trận theo cách thông minh hơn?

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 

Tôi muốn xóa hàng 4-6 và 7-9 cột từ ma trận này.

tôi biết làm thế nào để xoá bỏ nó từng người một bằng

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

Tuy nhiên, tôi tin rằng nó là cách ngu ngốc nhất để làm việc đó. Bạn có thể tư vấn một số cách thông minh hơn để làm điều đó không?

Trả lời

50

Bạn có thể làm:

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

1 thay thế cú pháp: 't1 <- t1 [- (4: 6), - (7: 9)]' –

+0

hah, đã đăng bài tương tự! – Maiasaura

+0

Cảm ơn bạn rất nhiều! – psiu

6

Bạn có thể sử dụng

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

hoặc

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

hoặc

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

Bạn có thể vượt qua vectors để chọn rows/columns bị xóa. Hai phương pháp đầu tiên hữu ích nếu bạn đang cố gắng xóa liên tục hàng/cột. Phương pháp thứ ba hữu ích nếu bạn đang cố gắng xóa rời rạcrows/columns.

> 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 
1
> 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 

''

Chỉ Sử dụng COMAND S < - S [2] nó loại bỏ cột thứ hai. Tương tự như vậy để xóa một hàng xóa hàng thứ hai S < - S [-2,]

Các vấn đề liên quan