2012-10-30 2 views
1

플롯의 제목에 H2o를 쓰려면 어떻게해야합니까? 이 hint화학식 + Gnu R 글씨 제목

덕분에 내가

plot(main=expression(H[2]*O),0) 

와 제목에서 일반 화학식을 포함 할 수 있습니다 여기에 실제 공식은 복잡 좀 더하고 난을 생략하고 필요한 텍스트에 다음을 추가 할 . 는하지만이 실패

h2o <- expression(H[2]*O) 
plot(main=paste(h2o, "in the air"),0) # paste fails here :(

답변

2

다음은 변수에 화학 공식을 사용할 수있는 방법입니다.

eval(parse(text = ...))의 위험을 기억

# note that .formula is either an expression or a character 
# string that would define a valid expression 
maketitle <- function(.formula, .other){ 
    .expression <- sprintf('%s ~ "%s"',as.character(.formula), .other) 
    evalq(parse(text = .expression)) 
} 


f <- expression(H[2]*O) 
o <- 'blah blah' 

plot(1:10, main = maketitle(f, o)) 

은, 개인적으로 나는 내 자신의 미래의 어리 석음을 과소 평가하지 않으려 고 노력 후회 적이 없다. - 그렉 눈 지금까지 작동 (2007년 1월

1

당신은이 R의 구문의 일부이기 때문에 파서가 처음으로 캡처하는 인용 할

plot(1:10, main = expression(H[2] * O ~ "in the air")) 

또는

plot(1:10, main = expression(H[2] * O ~ "in" ~ the ~ air)) 

합니다 (in 요구를 할 , for(i in 1:10)과 같습니다.)

중요한 점은 x ~ y 표기법은 서로 분리하여 서로 옆에 xy을 배치합니다. 마십시오 읽기 ?plotmath!

여기서 중요한 점은 expression()에 의해 반환 된 표현식이 필요하다는 것입니다. 일반적으로 paste()안에 표현식에는 문자열을 plotmath에 대한 표현식에 포함 할 수 있으므로 필요하지 않습니다.

+0

R-도움 (왜 평가 (구문 분석 (...))를 설명하는 종종 차선, 악명 높은 재산에 의해 트리거 된 질문에 대답 (106)입니다) 그러나 변수에서 화학 공식을 어떻게 읽을 수 있습니까? –

+1

저는 여러분이 할 수 있다고 생각지 않으며'bquote()','substitute()'등 몇 가지 시도를했습니다. –