【发布时间】:2020-05-15 23:48:40
【问题描述】:
我想将从 fisher.test 函数返回的双精度浮点值放入 R C++ 中的 2 个向量中。
当分配给如下双精度时,p 值和置信区间的下限按预期工作,但对于置信区间的上限则不然:
// perform Fisher Exact test
IntegerVector v = { 1, 2, 3, 4 };
v.attr("dim") = Dimension(2, 2);
Function f("fisher.test");
List fe = f(v);
// now assign to variables
List sublist = fe["p.value"];
double pValue = sublist[0];
Rcout << "pValue:" << pValue;
sublist = fe["conf.int"];
NumericVector cis = sublist[0];
double ci_upperBound = cis[1];
Rcout << "ub:" << ci_upperBound ;
但是,如下分配给 NumericVectors 不起作用(分配了值,但不是正确的值,就好像指针未对齐一样)。
NumericVector pValues(1);
NumericVector ciLowerBounds(1);
// (then perform Fisher test as per above)
// now assign to variables
List sublist = fe["p.value"];
pValues[0] = sublist[0];
Rcout << "pValue:" << pValues[0];
sublist = fe["conf.int"];
NumericVector cis = sublist[0];
ciUpperBounds[0] = cis[1];
我曾尝试使用 pValues[0] = Rcpp::as<double>sublist[0];,但 IDE 告诉我这是从不兼容的类型分配的。
您能否帮我将置信区间的 p.value 和 lupper 界限直接分配给相应的 NumericVectors 在适当的索引处?
【问题讨论】: