2016-10-21 7 views
2

% in % 연산자의 대소 문자를 구분하는 방법이 있습니까?r % in % 연산자 | 대소 문자 구분 민감도

stringList <- c("hello", "world") 
"Hello" %in% stringList 
"helLo" %in% stringList 
"hello" %in% stringList 

그러나 내 실제 응용 프로그램에서 나는 또한 왼쪽 체크에 문자열 목록을 사용하고, 재생 가능한 예제로이 코드를 생각해 내 경우에는 나는 그것이 아무리에게 입력의 경우 true를 반환 할 stringList의 단어가 있는지 확인합니다.

+0

또한 http://stackoverflow.com/ [여기 ((http://stackoverflow.com/questions/8361589/turning-off-case-sensitivity-in-r) 및 [여기] 참조 질문/27085620/which-command-in-r-case-insensitive). – zx8754

+0

흠, 이것이 중복 된 이유는 알 수 없지만 링크 된 게시물에는 잠재적 인 해결 방법이 있습니다. – florian

+0

링크 된 게시물이 다른 기능을 사용하는 동안 '% in %'를 사용하는 것과 100 % 중복되지는 않지만 답변을 확인하고 동일한 grepl with case와 tolower 또는 toupper 함수를 사용합니다 대소 문자를 구별하지 마십시오. – zx8754

답변

3

사용 grepl 그것은 ignore.case 매개 변수가 대신 같이

grepl("^HeLLo$",stringList,ignore.case=TRUE) 
[1] TRUE FALSE 

그것은 당신에게 더 많은 유연성을 제공하므로 첫 번째 인수는 정규 표현식이지만, 당신이 ^으로 시작 따기 피하기 위해 $로 끝나는해야을 up 하위 문자열. 왼쪽은 우리는 양쪽, 예를 들어, 항목 tolower 만들기도 문자 벡터의 경우

tolower("HeLLo") %in% stringlist 

: @ 제임스의 대답은 정규 표현식에를 피하려는 경우, 당신은 또한 tolower을 사용할 수 있습니다뿐만 아니라

+0

James에게 감사합니다. 왼쪽 입력이 있다면 또한 문자열 목록? – florian

+0

@florian or 연산자를 정규식'|'에 사용할 수 있습니다. 그러나 여러 문자열을 처리하는 방법에 따라 다릅니다. – James

2

:

x <- c("Hello", "helLo", "hello", "below") 
stringList <- c("heLlo", "world") 
tolower(x) %in% tolower(stringList) 
# [1] TRUE TRUE TRUE FALSE 
+0

그러나''Hello "''stringList'에 있다면? –

+0

독자의 연습 문제로 남아 있습니다. –

+0

맙소사. 나는 양면에 tolower를 사용할 것을 고려할 것이다. – florian