【问题标题】:modifying r code based on values of python in rpy2?根据rpy2中python的值修改r代码?
【发布时间】:2015-10-22 08:18:32
【问题描述】:

我正在尝试根据在 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 在被调用时崩溃)

可以这样做吗?我是否在某处弄乱了代码?有没有更好的方法来做到这一点?

谢谢,点赞

【问题讨论】:

    标签: python r rpy2


    【解决方案1】:

    对于字符串字段,您需要使用%r,因为%s 不会为您的字符串添加引号。

    你也可以使用json.dumps()

    【讨论】:

      猜你喜欢
      • 2017-06-28
      • 1970-01-01
      • 2017-10-25
      • 1970-01-01
      • 2018-08-02
      • 1970-01-01
      • 1970-01-01
      • 2021-06-22
      • 1970-01-01
      相关资源
      最近更新 更多