2012-10-16 8 views
32

मान लीजिए कि t1 है दो:एक मैट्रिक्स से विशिष्ट तरीके से विशिष्ट पंक्तियों और कॉलम को कैसे हटाएं?

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 

मैं इस मैट्रिक्स से पंक्ति 4-6 और स्तंभ 7-9 हटाना चाहते हैं।

मैं इसे एक के बाद एक का उपयोग कर

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

हालांकि, मेरा मानना ​​है कि यह यह करने का सबसे बेवकूफ तरीका है दूर करने के लिए कैसे पता है। क्या आप इसे करने के कुछ स्मार्ट तरीकों की सलाह दे सकते हैं?

उत्तर

50

आप कर सकते हैं:

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

+1 विकल्प वाक्य रचना - इसी तरह दूसरी पंक्ति एस < नष्ट करने के लिए एक पंक्ति नष्ट करने के लिए [- (4: 6), - (7: 9)]' –

+0

हां, इसे पोस्ट करने के लिए आया था! – Maiasaura

+0

धन्यवाद बहुत बहुत धन्यवाद! – psiu

6

आप उपयोग कर सकते हैं

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

या

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

या

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

हटाए जाने के लिए rows/columns चुनने के लिए आप vectors पास कर सकते हैं। यदि आप निरंतर पंक्तियों/स्तंभों को हटाने की कोशिश कर रहे हैं तो पहले दो विधियां उपयोगी हैं। तीसरा तरीका उपयोगी है यदि आप अलगrows/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 

``

बस comand एस < का उपयोग करना - एस [, 2] यह दूसरा स्तंभ को हटा। `T1 <- t1: एस [-2,]

संबंधित मुद्दे