2013-07-25 3 views
4

심볼과 함께 다른 함수를 만들고 싶습니다. (예 : ~)R - "물음표"기능은 어떻게 작동합니까?

+1

''R>'?'= c; R>'?'(3, 5)'''~'에 대해서''R>'~'= c; R> 3 ~ 5 [1] 3 5''. 이것은 매우 일반적인 질문입니다. backticks로 둘러 쌓여있는'?'를 보아라. (여기에 서식을 붙인 채로 백틱으로 둘러싸인 방법을 알아 낸다.) 그 정의가 어떻게 보이는지 보자. –

답변

5

을하려고하지 않는 한 예를 들어, [fnord을 의미있게 만들 수는 없습니다.

이것은 R 소스에서 gram.y의 구문 정의에서 비롯됩니다.

| '~' expr %prec TILDE  { $$ = xxunary($1,$2); } 
| '?' expr   { $$ = xxunary($1,$2); } 

| expr ':' expr   { $$ = xxbinary($2,$1,$3); } 
| expr '+' expr   { $$ = xxbinary($2,$1,$3); } 

위의 두 번째 줄은 ?foo의 구문을 정의합니다. 너 정확히 뭘 하려구?

+0

내가 만든 캐시 환경에 빠르게 접근하고 싶다. 예를 들어 함수 '_'를 프로그래밍하면 _myVariable에서 getEnv ("myVariable", envir = "myCacheEnv")를 반환 할 수 있습니다. – RockScience

1

백틱 '을 사용하여 임의의 이름으로 함수와 변수를 만들 수 있습니다.

`~` <- `+` 
y <- 5 
x <- 10 
y ~ x 
# 15 

그래도 난 ~하지 엉망 것, 당신은 덤비는없이 통계 모델링 .... 당신은 ?foo로 "맨"으로 뭔가를 할 수 없습니다

+0

'~'로 뒤지는 것은 좀 무서운 것처럼 보인다! – zx8754

+0

좋은 점, ~은 확실히 사용할 수있는 최고의 캐릭터가 아닙니다. 거의 모든 캐릭터가 이미 촬영되었습니다. 나는 S4 클래스를 사용하여 e1 ~ e2와 ~ e2를 구별 할 수 있다고 생각했다. – RockScience

관련 문제