2013-05-06 2 views
1

각 행 벡터에 이름이있는 행렬이 있습니다. 나는 내가는 R 코드에 다음을 설정하고자한다, 내 매트릭스에 행 구성원을 확인하고 싶습니다 :행렬의 행 멤버 확인

if(mat contains "rowname") 
{ do appropriate task ....} 
else if(mat contains "otherrowname") 
{ do appropriate task ....} 
else 
{ do different task....} 
  1. 어떻게 매트릭스 행 회원을 테스트 할 수 있습니다?

모든 도움을 주실 수 있습니다!

답변

2

: 여기에 빠른 예제 in-rownames.

+0

나는 실수했다고 생각합니다. 'rowNameToFind'의 길이가'mat'에 설정된 행의 이름과 관계없이'TRUE'로 평가됩니다. 내가 놓친 게 있니? –

+0

나는 당신의 주장을 납득시킨다. sum()을 사용하는 것은 어떻습니까? –

+0

예, sum()을 사용하면 매우 잘 작동합니다. –

0

는만큼 각 행은 rowname을 가지고로 다음과 같은 작업을 수행 할 수 있습니다

> if("somerowname" %in% rownames(somematrix)) 
+ { print("true") } else print("false") 
[1] "true" 

을 나는이 도움이와 코드가 분명하다 바랍니다!

2

색인을 생성 할 수있는 행렬은 rownames 일 수도 있고 아닐 수도 있습니다. %in% 연산자를 사용하여 색인을 생성 할 수 있습니다. 목표 NOT-과 동시에 rownames-실종 완전히 가능성을 동시에

if(sum(rowNameToFind %in% rownames(mat))) { TRUE }else{ FALSE } 

이 거래 :처럼 보이는 코드를보고 매우 일반적입니다

#Sample matrix 
mat <- matrix(rnorm(100), ncol = 10) 
#Find the row 'b' 
rowNameToFind <- "b" 


if (is.null(rownames(mat))) { 
    print("no rownames to index!") 
} else if (rowNameToFind %in% rownames(mat)) { 
    print("hurrary") 
} else { 
    print("boo") 
} 

#Returns 
[1] "no rownames to index!" 

#Define the rownames 
rownames(mat) <- letters[1:10] 


if (is.null(rownames(mat))) { 
    print("no rownames to index!") 
} else if (rowNameToFind %in% rownames(mat)) { 
    print("hurrary") 
} else { 
    print("boo") 
} 

#Returns 
[1] "hurrary"