【发布时间】: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 在被调用时崩溃)
可以这样做吗?我是否在某处弄乱了代码?有没有更好的方法来做到这一点?
谢谢,点赞
【问题讨论】: