r语言 - RCPP 公式输入参数



我想创建输入值为 R 公式的 Rcpp 函数。当我使用 String 作为函数的输入时,当我以非字符串格式编写公式时,我在 R 中出现错误(如果我在 R 中提供像字符串一样的公式,那么一切正常(。请提供一个示例,如何使用公式类对象作为 Rcpp 函数的输入。

将非常乐意寻求帮助!

Ralf Stubner的回答之后,我提供了一个简短的例子。函数 foo 将公式和数据帧作为输入参数,并返回包含公式中提到的变量的数据帧。

RCPP代码

#include <RcppArmadillo.h>
using namespace RcppArmadillo;
//' Extract dataframe from dataframe df according to the formula
//' @export 
// [[Rcpp::export]]
DataFrame foo(DataFrame df, Formula formula)
{
    Rcpp::Environment stats_env("package:stats");
    Rcpp::Function model_frame = stats_env["model.frame"];
    DataFrame df_new = model_frame(Rcpp::_["formula"] = formula, Rcpp::_["data"] = df);
    return(df_new);
}

R 代码

my_df <- data.frame("x1" = c(1,2,3), 
                    "x2" = c(4,5,6), 
                    "x3" = c(7,8,9))
my_df_new = foo(df = my_df, formula = x1~x2+I(x3^2)+I(x2*x3))

输出将是:

 x1 x2 I(x3^2) I(x2 * x3)
  1  4      49         28
  2  5      64         40
  3  6      81         54

相关内容

  • 没有找到相关文章

最新更新