2015-12-21 3 views
3

Я пытался использовать Т-тест в R, используя OpenCPU следующим образом -т-тест с использованием OpenCPU

<script src="//code.jquery.com/jquery-1.11.1.min.js"></script> 
<script src="//cdn.opencpu.org/opencpu-0.4.js"></script> 

и

ocpu.seturl("//public.opencpu.org/ocpu/library/stats/R") 

var x = [1,2,3,4,5,6,7,8,9,10]; 
var y = [7,8,9,10,11,12,13,14,15,16,17,18,19,20]; 
// call R function: stats::t.test 
var req = ocpu.rpc("t.test",{ 
    "x" : x, 
    "y" : y 
}, function(output){ 
    alert("t.test equals: " + output); 
}); 

//optional 
req.fail(function(){ 
    alert("R returned an error: " + req.responseText); 
}); 

Но я получил эту ошибку

enter image description here

Я не могу понять, где я буду ошибся

+0

Я никогда не использовал эту функцию или соглашение о вызове, но оказалось, что вам не удалось предоставить второй аргумент, а именно «статистику», которая ожидалась. –

+0

@ 42- Я не понимаю, что такое аргумент «stats». Я включил библиотеку в 'ocpu.seturl (« // public.opencpu.org/ocpu/library/stats/R ») ' в настройке. Где еще я пропустил? – Dinesh

+0

См. Http://jsfiddle.net/jzL22chm/ – Jeroen

ответ

6

Функция ocpu.rpc является сокращением, которое извлекает выходные данные как JSON. Однако нет JSON-представления объекта t.test. Поэтому вы можете использовать ocpu.call и получить, например. консольный вывод из сеанса [fiddle]:

var req = ocpu.call("t.test",{ 
    x : x, 
    y : y 
}, function(session){ 
    session.getConsole(function(outtxt){ 
     $("code").text(outtxt); 
    }); 
}); 

Если вы хотите фактические данные (например, р-значение), я рекомендую вам создать простой R пакет с функцией обертки, которая возвращает список с данными вы заинтересованы в:

my_ttest <- function(x, y){ 
    out <- t.test(x,y) 
    list(
    n1 = length(x), 
    n2 = length(y), 
    p = out$p.value 
) 
} 

вы сможете вызвать эту функцию с помощью ocpu.rpc, как вы делали выше, потому что список может быть отображен непосредственно в JSON. Обратите внимание, что вы можете легко развернуть свой собственный пакет на общедоступном демонстрационном сервере с помощью github webhook.

+0

Привет, спасибо за информацию. Я создал пакет на github - теперь как я могу вызвать функцию в пакете github с opencpu? – Dinesh

+0

получил это - 'ocpu.seturl (" // public.opencpu.org/ocpu/github/githubusername/packagename/R ")' – Dinesh

 Смежные вопросы

  • Нет связанных вопросов^_^