2013-05-06 2 views
0

특정 범위 사이의 값은 grep이어야합니다. 어떻게 작성하나요?값에 grep을 사용하는 방법 <= 같음보다 같음보다 작음?

예를 들어 다른 시도를했습니다. 0 and 1 사이에 모든 것을 선택하는 -

mydata[grep("<=[1]",">=[0]") , mydata_V1, perl= TRUE), "new_variable" <- "A" 
+6

질문이있는 그대로 이해가되지 않습니다. 샘플 입력 및 예상 출력과 함께 일부 상황을 제공하십시오. –

+0

awk 사용을 고려하십시오. – devnull

답변

1

이 펄 코드는 0과 1 (포함) 사이에 모든 것을 선택합니다 grep를 사용하여 호출합니다.

my @mydata = (-0.1, 0, 0.1, 0.5, 1, 1.1); 
my @selected = grep {0 <= $_ && $_ <= 1} @mydata; 
+0

안녕하세요, 저는 이것을 R에서 실행하고 싶었습니다. 언급하는 것을 잊었습니다. 이 코드는 r에서 작동하지 않습니까? 덕분에 – RNewbi

+0

나는 perl 태그를 제거하고 R로 바꿀 것을 제안한다. – stevenl

1

샘플 표현은 거기에 구문 오류가 나는 그것이 될 운명이 정확히 무엇인지 모르겠지만, 당신이 원하는 것은 논리적 색인 생각 :

> mydata <- runif(20, 0, 2) 
> mydata[mydata >= 0 & mydata <= 1] <- NA 
> mydata 
[1]  NA  NA 1.655342 1.704777  NA 1.026898  NA  NA 
[9]  NA 1.316825  NA 1.498825  NA  NA 1.263354  NA 
[17]  NA 1.389281  NA 1.041297 

주 사용 && 대신 &입니다. &&을 사용하는 경우에는 작동하지 않습니다.

더 많은 예제 (다차원 데이터 구조에 대한 방법 포함)는 http://www.cookbook-r.com/Basics/Indexing_into_a_data_structure/을 참조하십시오.

관련 문제