Звоните R из S-Plus? - PullRequest
       29

Звоните R из S-Plus?

2 голосов
/ 06 января 2010

У кого-нибудь есть предложения по хорошему способу звонить в R из S-Plus? В идеале я хотел бы просто передать код в R и получить данные обратно без необходимости писать что-то слишком сложное для их интеграции.

Я должен добавить, что я знаком с пакетом RinS в Омегахате, но я им не пользовался. У меня сложилось впечатление, что Insightful предпринял попытку интегрировать среды до того, как Tibco вступит во владение.

Редактировать: Оказывается, RinS не работает в Windows. Я обнаружил, что самым простым решением было просто использовать Rscript. Я могу вызвать это из S-Plus с помощью команды system(). Например, вот простой скрипт:

#! Rscript --vanilla --default-packages=utils
args <- commandArgs(TRUE)
print(args)
print(1:100)
Sys.sleep(2)
res <- "hello world"
class(res) <- "try-error"
if(inherits(res, "try-error")) q(status=1) else q()

И позвонив из S-Plus:

system("rscript c://test.rscript 'some text'")

Затем я просто сохраняю результаты в текстовом файле и импортирую их в S-Plus после запуска сценария.

1 Ответ

5 голосов
/ 06 января 2010

RSPlus - единственный вариант, который мне известен. Я использовал его почти ежедневно в течение года, но не использовал его с R 2.7. Из вашего Q кажется, что вы просто хотите запустить R внутри SPlus, что, безусловно, может сделать RSPlus (R - это отдельный интерпретатор, доступный через интерфейс, состоящий из нескольких функций SPlus, наиболее часто используемым является '.R ()' Например, .R ("Fivenum", 1:10).

Я думаю, что мы говорим об одном и том же, потому что «RinS» - это один из двух модулей (SpinR - другой), которые вместе составляют RSPlus (т. Е. Существует только один интерфейс, независимо от того, в каком направлении вы хотите идти От R до SPlus или от SPllus до R). Хотя для меня это не было очевидно в то время, мне пришлось установить оба модуля, чтобы заставить RinS работать.

...