經過一番麻煩我成功安裝了rpy2。rpy2和R調試
我的目標是構建模型(gam; Simon Wood的庫mgcv),並使用預測函數將來自python的pandas數據框通過rpy2傳遞給gam模型並檢索預測。
R腳本通過加載txt文件進行測試,並通過與python/rpy2腳本調用的相同的R函數進行處理,並且它工作正常。在python腳本中,我從文本文件的pickle版本開始(就像我在我的最終代碼中,從一個pandas數據框開始)。
我也可以觸發R腳本中的其他錯誤,這些錯誤是有意義的(傳遞一個空數據框,或者丟失一列的數據框以成功執行預測,同時觸發R中的錯誤)。實際上在輸入數據完好無損的情況下進入gam函數。
我靠近終點,但一直收到此錯誤:
錯誤ExtractData由(對象,數據,NULL): 「名稱」屬性[1]必須是相同的長度作爲矢量[ 0]
我不知道有什麼辦法從我的python腳本中獲得更多的R的反饋。我該如何調試?或者任何人都可以指出我R中的問題是什麼?或者,這是「.convert_to_r_dataframe()」函數的一部分,我沒有完全理解?
R-代碼:
f_clean_data <- function(df) {
t = df
... some preprocessing
t
}
tc <- f_clean_data(t)
f_py_gam_predict <- function(gam, df) {
dfc = f_clean_data(df)
result <- predict(gam, dfc)
result
}
bc_gam = gam(BC ~
+s()
.... some gam model
, data=tc, method="REML"
)
summary(bc_gam)
testfile = 'a_test_file.txt'
ttest <- read.table(file=testfile ,sep='\t',header=TRUE);
result = f_py_gam_predict(bc_gam, ttest)
的f_py_gam_predict是在Python腳本可用。
感謝, 呂克
的版本的各個比特可能會有所幫助。 'convert_to_r_dataframe'中存在一些問題,導致我對熊貓進行了轉換(從rpy2開始,從版本2.3.4開始),但我同時也聽說'convert_to_r_dataframe'得到了修正。 – lgautier