2017-10-05 9 views
0

특정 x 및 y 값 위에 포인트가 있고이 값 아래에 레이블이없는 포인트가있는 산점도를 만들고 싶습니다.임계 값에 따라 산점도에 라벨 지정

내가

plot(data[,2]~data[,3], ylim=rev(range(data[,2])), xlim=c(-20,20), log="y", type="n") 
text(data[,2]~data[,3], labels=ifelse(data[,2] < 0.05 && data[,3] > 1, data[,1], points(y,x))) 

처럼 뭔가에 대해 생각했다하지만 나에게이 오류 제공 :

Error in ans[!test & ok] <- rep(no, length.out = length(ans))[!test & : 
replacement has length zero 
In addition: Warning message: 
In rep(no, length.out = length(ans)) : 
'x' is NULL so the result will be NULL 

내가 SO에 대한 몇 가지 비슷한 질문을 여기에서 찾을 없지만, 내 요구에 적용 할 수있는 아무것도 - 적어도 내 제한된 지식으로.

(난 그렇게 내 질문 참아주세요, R의 초보자입니다.)

+0

두 벡터 사이에 논리적 AND가 필요한 경우에는 '&'를 사용해야합니다. – wici

+0

@wici 변경했지만 오류가 남아 있습니다 ... – LinuxBlanket

답변

0

text(data[,2]~data[,3], labels=ifelse(data[,2] < 0.05 && data[,3] > 1, data[,1], points(y,x))) 

체크 아웃 두 가지 문제이 답변이 있습니다 R - boolean operators && and || 이 &과의 차이를 이해하려면 & &, 사례 "&"이 더 적합합니다. 두 번째 문제는 코드의이 부분은 논리 응답 "FALSE"인 경우라고

points(y,x) 

이고; if 조건의 FALSE 브랜치; points 나는 param x & y를 취하는 로컬 함수라고 추측합니다. x와 y는 ifelse의 parent.frame (범위)에서 인스턴스화되지 않았습니다. 그래서 "&"을 수정하면됩니다. 주변 점 (y, x)을 둘러싼 오류가 발생합니다.

data[,2] < 0.05 & data[,3] > 1 

이 false 일 때 실행해야하는 함수가 값을 반환하는지 확인하십시오.

+0

&& 실수를 수정했지만 나에게도 같은 오류가 발생합니다. – LinuxBlanket

+0

이전에 텍스트 (data [, 2] ~ data [, 3], labels = ifelse (data [, 2] <0.05 & data [, 3]> 1, data [, 1], data [, 2])); 그것을 시도해보고 거기에 데이터 포인트가 있는지보십시오. 그렇다면 내가 지적한 포인트 (y, x)가 분명히 수정 될 필요가있다. – Yash