使用 rpy2 获取 MatchIt 结果时出现问题 / 如何使用 rpy2 调试 R 函数?

问题描述 投票:0回答:1

我无法在 MWE 中重现这一点。我过去使用过这段代码并且它有效。从那时起,有些可能已经改变了。

没有错误。问题是

get_balance
NoneType
。自建R函数没有返回任何东西。

get_balance = robjects.r('''f <- function(match_out) {
        result <- summary(match_out)$sum.all
        result <- as.data.frame(result)
        return(result)
    }
    ''')

balance = get_balance(match_result)

我对 R 缺乏经验。所以我不知道如何调试它或在 R 代码中添加一些调试辅助行。

我可以将其分为几个步骤,例如

robjects.r['summary']
。但我不知道如何将
$sum.all
“翻译”成Python。

我不知道从哪里开始。

python r rpy2 matchit
1个回答
0
投票

R 代码

f <- function() {}
不返回任何内容。它声明一个函数并将其绑定到评估框架/环境中的符号
f

您可以这样做:

get_balance = robjects.r('''function(match_out) {
    result <- summary(match_out)$sum.all
    result <- as.data.frame(result)
    return(result)
}
''')

get_balance = robjects.r('''f <- function(match_out) {
    result <- summary(match_out)$sum.all
    result <- as.data.frame(result)
    return(result)
}
f
''')
© www.soinside.com 2019 - 2024. All rights reserved.