簡體   English   中英

修改基於rpy2中python值的r代碼?

[英]modifying r code based on values of python in rpy2?

我試圖根據在python中存儲和計算的值修改R中的一行。 這是我使用的代碼:

def create_new_row_r(json_dict):
    newdata = robjects.r('''
                         createdata = function(row){
                             dummydata <- row
                             dummydata["field1"] <- %s
                             dummydata["field2"] <- %s
                             dummydata["field3"] <- %i
                             dummydata["field4"] <- %s
                             dummydata["field5"] <- %i
                             dummydata["field6"] <- %s
                             dummydata["field7"] <- %i
                             dummydata["field8"] <- %i
                             dummydata["field8"] <- %i
                             dummydata["field9"] <- %i
                             dummydata["field10"] <- %i
                             dummydata["field11"] <- %i
                             return(dummydata)
                         }
                         createdata(datz1[1,])
                         '''
                         %(json_dict["field1"],   json_dict["field2"], json_dict["field3"], 
                           json_dict["field4"], json_dict["field5"], 
                           json_dict["field6"], json_dict["field7"], json_dict["field8"], 
                           json_dict["field9"], json_dict["field10"], 
                           json_dict["field11"], json_dict["field12"]))
    print "new row assembled"
    return newdata

然后,我調用此函數並傳入包含這些值和數據類型的json_dict。 我期望這將返回robject“ dummydata”,如rpy2“運行r代碼”文檔中所述:

http://rpy.sourceforge.net/rpy2/doc-dev/html/introduction.html

但是此代碼無法正常工作或引發任何錯誤(除了使我正在運行的API在被調用時崩潰)

是否有可能做到這一點? 我把代碼弄亂了嗎? 有沒有更好的方法可以做到這一點?

謝謝,會投票

對於字符串字段,您需要使用%r因為%s不會為字符串添加引號。

您也可以使用json.dumps()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM