2013-05-14 38 views
1

我期待上python乳寧R代碼裏面:關鍵字不能

我已經安裝將R包robustbase上ubunto使用apt-get install r-cran-robustbase和RPY運行一些R代碼的表達式錯誤消息packege以及。

從Python控制檯我可以成功運行from rpy import *r.library("robustbase") 但是當我運行

result = robjects.FloatVector([11232.1, 234.2, 3445532344.3, 34302.3, 203.9, 232223.3, 3434.55]) 
print(result.r_repr()) 
r(adjboxStats(c(11232.1, 234.2, 3445532344.3, 34302.3, 203.9, 232223.3, 3434.55), coef = 2.5, a = -4, b = 3, do_conf = TRUE, do_out = TRUE)) 

得到離羣值

但我得到這個錯誤:

adjboxStats(c(11232.1, 234.2, 3445532344.3, 34302.3, 203.9, 232223.3, 3434.55), coef = 2.5, a = -4, b = 3, do.conf = TRUE, do.out = TRUE) 
SyntaxError: keyword can't be an expression 

時我在R控制檯上運行它,它的工作原理!

library("robustbase") 
adjboxStats(c(11232.1, 234.2, 3445532344.3, 34302.3, 203.9, 232223.3, 3434.55), coef = 2.5, a = -4, b = 3, do.conf = TRUE, do.out = TRUE) 

我搜索hereherehere但沒有運氣。 沒有人知道這是什麼錯誤信息,是否有辦法繞過它?

謝謝!

+2

您不能使用'do.conf'或'do.out'作爲Python函數的參數(即使該函數將被轉換爲R)。 –

+0

正確,我必須使用do_conf和do_out對不對?我知道這麼多:) – mongotop

+0

@mongotop:如果你已經知道,爲什麼不進行改變(這將修復此錯誤)而不是詢問? – abarnert

回答

3

您不能使用do.confdo.out作爲Python函數的參數(即使該函數將轉換爲R)。

取而代之的是,將它們稱爲do_confdo_out

r("adjboxStats")(result, coef = 2.5, a = -4, b = 3, do_conf = True, do_out = True) 

這將解決這個問題的語法:你被然後讓另一個錯誤,這是你如何引用r("adjboxStats")絆倒。

+0

它沒有!它回答我的問題,我會將其標記爲已接受!非常感謝,我可以再問你一個問題,我得到的是什麼c沒有定義錯誤?我只是作爲一個載體,因爲我在這裏閱讀http://hosho.ees.hokudai.ac.jp/~kubo/Rdoc/library/robustbase/html/adjboxStats.html – mongotop

+0

'c'是一個'R'函數它不是一個Python函數。而是使用'r.c'。 –

+0

嗨大衛,非常感謝你!我試過r.c,我的代碼停止執行,執行不會完成,並且它掛起,我必須在每次運行腳本時都終止進程,您是否知道爲什麼會發生這種情況?再一次非常感謝你!! – mongotop