각 클래스는 화학 물질 (예 : 금속, PCB 등)을 기반으로 한 일련의 플롯 생성을 자동화하고 있습니다. 내가 생략 할 이유는 음모의 외부에있는 전설을 플로팅하고 legend()
함수 (예 : inset = c(-0.2, 0)
)에 대해 inset
인수에 음수 값을 사용하는 것입니다. 각 화학 클래스는 inset
에 대해 다른 값을 필요로하기 때문에 각 화학 클래스에 필요한 값을 저장하기 위해 hash
패키지를 사용하여 해시 테이블을 만드는 방법을 생각했습니다. 그러나 이것을 해시 테이블에 저장하기 위해 값의 벡터를 문자열 (예 : "c (-0.2, 0)")로 저장했습니다. 해시 테이블에 대한문자열을 함수로 표현하십시오. R
내 코드는 다음과 같습니다 legend.hash <- hash(chem.class, c('c(-0.2, 0)', 'c(-0.2, 0)', 'c(-0.25, -0.4)', 'c(-0.25, -0.3)', 'c(-0.2, 0)', 'c(-0.4, -0.2)', 'c(-0.2, 0)', 'c(-0.2, 0)'))
chem.class
화학 클래스의 벡터이다.
결과 해시 테이블에서 값을 가져 오는 것은 분명히 문자열이므로이 문자열을 변환하여 R이 다음과 같이 사용할 수있는 함수로 해석하도록 할 수 있습니까? legend(..., inset = legend.hash[[chem.class[i]]])
?
기존의 그래픽 시스템을 사용하여 더 좋은 방법을 구현할 수 있습니까?
> eval(parse(text="c(-0.2,0)"))
[1] -0.2 0.0
그러나 간단한 목록 대신 해시를 사용하여 주장하는 이유 정말 궁금 :
왜 단순히 목록을 사용할 수 없습니까? – joran
전설을 그리기 위해 여러 개의 인세 트 값이 필요한 예제가 궁금합니다. 그것보다 훨씬 간단합니다. – baptiste
범례 내의 아이템 수와 길이는 일련의 플롯을 통해 대폭 변경됩니다 (1 ~ 40 개 항목까지). 각 플롯에 대해 인세 트를 동일하게 유지하면 전설이 페이지 여백을 넘어서게됩니다. – sinclairjesse