2014-09-06 2 views
0

행렬에서 특정 항목을 제외 (예 노호)내가 번호 목록이

[[178]] 
NULL 

[[179]] 
[1] 179 66 

[[180]] 
[1] 180 67 

[[181]] 
[1] 181 123 

[[182]] 
[1] 182 

이 목록 열 포함 (179, 66, 180, 67, 181, 123) 내가에서 제외 할 매트릭스.

나는 명령 노호 시도,하지만 그들은 작동하지 않았다 :

MyMatrix[, !(unlist(MyList))] 
MyMatrix[, -(unlist(MyList))] 
MyMatrix[, !unlist(MyList)] 
MyMatrix[, -unlist(MyList)] 

내 질문 : 행렬에서 특정 열을 제외 할 올바른 방법은 무엇입니까?

+0

에 저장해야합니다 확인 : 이것은'data.tframe'이 아니라'data.frame'입니다, 맞습니까? –

+0

@DavidRobinson, 나는 실수를 바로 잡았다. 분명히이 데이터 구조는 매트릭스입니다. – PoGibas

+4

코드'MyMatrix <- MyMatrix [, - (unlist (MyList))]'가 아닌'MyMatrix [, - (unlist (MyList)]]'라인을 실행하고 있습니까? (그렇다면 그건 당신의 실수입니다). –

답변

1

여기 내 작은 복제가 있습니다.

listOfColumns<-list(NULL, c(2,3), 5, NULL) 
listOfColumns #print for viewing 
#output 
#[[1]] 
#NULL 

#[[2]] 
#[1] 2 3 

#[[3]] 
#[1] 5 

#[[4]] 
#NULL 

MyMatrix<-matrix(1:50, nrow=10, ncol=5) 
MyMatrix #print for viewing 
#output 
#  [,1] [,2] [,3] [,4] [,5] 
#[1,] 1 11 21 31 41 
#[2,] 2 12 22 32 42 
#[3,] 3 13 23 33 43 
#[4,] 4 14 24 34 44 
#[5,] 5 15 25 35 45 
#[6,] 6 16 26 36 46 
#[7,] 7 17 27 37 47 
#[8,] 8 18 28 38 48 
#[9,] 9 19 29 39 49 
#[10,] 10 20 30 40 50 

첫째, 당신은 당신이 주어진 열 번호를 생략 있도록 행렬을 부분 집합 할 것있는 방법은 R에서

MyMatrix[-columnNumbers] 

을하는 것입니다, 음수는 해당 부분 집합에 사용 생략해야하는 항목에 적용됩니다.

다음 호출 출력의 당신이 원하는

MyMatrix[,-unlist(listOfNumbers)] 
#output 
#  [,1] [,2] 
# [1,] 1 31 
# [2,] 2 32 
# [3,] 3 33 
# [4,] 4 34 
# [5,] 5 35 
# [6,] 6 36 
# [7,] 7 37 
# [8,] 8 38 
# [9,] 9 39 
# [10,] 10 40 

나중에 사용하기 위해이 결과를 유지하려면, 당신은 (데이비드 로빈슨에있어 현재)

MySmallerMatrix<-MyMatrix[,-unlist(listOfNumbers)]