使用rpy2进行字符串格式化转义

时间:2017-07-11 07:50:53

标签: python r rpy2

我正在尝试使用rpy2在Python(2.7)中编写R函数,并且我在R factorwars中有一个函数可以保存包含字符串' reg'的方法中每个元素的索引。 / p>

from rpy2.robjects import r, pandas2ri
import rpy2.robjects as rob 
import pandas as pd
pandas2ri.activate()

rstring="""
function(methods){
factorvars=which(methods %in% 'reg')
}
"""
rfunc=rob.r(rstring)
new_data=rfunc(methods)

rstring实际上有点长,我尝试过使用'%sin%'字符串后面的%%以及%中的\%,但Python会将其解释为%i并要求输入整数。关于我如何在Python中以%为单位转义%或在R中用%编写类似函数的任何想法。

编辑:包含更多代码,导入和功能。很多问题是当我更改代码时,R代码将是错误的。 this_is_only_string的任何python函数('某些字符串')都会覆盖格式化?

<%> %%中的%%会显示错误消息:

  <text>:9:41: unexpected 'in'
8:         fact = c('polyreg', 'logreg')
9:         factorvars=which(method_array %%in

2 个答案:

答案 0 :(得分:0)

如果%被解释为printf样式指令,请尝试将%符号加倍:%%in%%

答案 1 :(得分:0)

一切似乎都在为此目的而努力:

dictionary_of_dictionaries = {
    'RandomUserName':  {'6/30/15': 2}, 
    'AnotherRandomUserName': {'5/25/16': 8}, 
    'AThirdRandomUserName': {'1/12/15': 5}
}


flattened = [(k,) + tuple(dic.iteritems()) for k, dic in dictionary_of_dictionaries.iteritems()]
print flattened