저는 R 초보자입니다. 간단한 문제처럼 보였습니다. R이 평가되는 방법과시기에 대해 꽤 깊은 질문을 던졌습니다.R의 함수에 계측되지 않은 명령을 전달하십시오.
저는 Rserve를 사용하고 있습니다.
RSeval(connection, quote(try(command)))
그래서 난 그냥 전화와 같은 일을하는 함수의 R 싶습니다 : 원격으로 평가 일을 얻을 수있는 일반적인 구문은 약간의 고통이 반복적으로 입력하는 것입니다
r(command)
내 당신은 그것을 짐작
r <- function(command) {
RSeval(c, quote(try(command)))
}
:이 내 혼란 Rserve 데몬으로, 문자 그대로, try(command)
를 전송 첫째, 순진, 참여 시도를 실패 할 수밖에. command
이 부분적으로이되도록 평가 해주세요. 즉, 인수로 입력 한 내용으로 대체되었지만 이 없으므로이 로컬로 평가됩니다.
나는 이것에 대한 해결책을 찾았으며, 견적, 대체, 평가, 전화 등을위한 문서를 열람했다. 그러나 나는 효과가있는 것을 찾을 수 없었다. command
은 로컬로 평가되거나 전혀 평가되지 않습니다.
이것은 큰 문제는 아니며, 전체 유형을 입력 할 수 있습니다 quote(try())
항상; 그러나이 시점에서 나는 이것이 작동하도록하는 방법에 대해 대부분 궁금하다.
편집 : 내가 원하는 것을 더 설명합니다.
- 위의 텍스트에서
command
은 전화를하는 것이 이상적입니다. 즉, 문자열이 아니어야합니다."a<-3"
또는quote(a<-3)
이 아닌a <- 3
또는assign("a", 3)
과 같은 것입니다. 나는 이것이이 까다로운 부분의 일부라고 생각한다. R이 로컬에서 이것을 평가하지 말라고 말하기는 정말로 어렵지만 문자로만 보내십시오. 기본적으로 내 함수는 그 인수를 평가하지 않는quote()
과 약간 같아야한다. - 나의 의도에 대한 설명. 원격 R 데몬에게 명령을 전달하기 위해 Rserve를 자주 사용하고 싶습니다. 명령은 내 자신 (또는 동료)과 방화벽 및 인증으로 보호되는 데몬 (루트로 실행되지 않음)이므로 악의적 인 명령이 전달 될 염려는 없습니다.
- 솔직히 말해서 이것은 큰 문제는 아니며 항상
RSeval(c, quote(try()))
을 사용하여 매우 행복 할 것입니다. 내가 제대로 이해한다면이 시점에서 나는이 더 잘 모르겠어요 :-)
R에서 평가를 제어하는 방법과 그 안의 몇 가지 함정을 설명하는 내용을 읽고 싶을 수도 있습니다. https://github.com/hadley/devtools/wiki/Evaluation – hadley
이 링크는 이제 종료되었습니다. –