r-如何使用Rcpp返回列为列表的数据帧



如本文所述,数据帧可以将列表作为列。我试着在Rcpp中做同样的事情,但没有成功。

df = data.frame(a=seq(1,2))
df$b = list(seq(1,10), seq(11,20))
df

我对应的Rcpp示例将生成的数据帧转换为列表(即删除数据帧属性(-无意中:

cppFunction('
DataFrame testme() {
DataFrame df = DataFrame::create(Named("a") = seq(1, 2));
df["b"] = List::create(seq(1,10), seq(11,20));
return df;
}')
testme()

有什么想法吗?

我在这篇文章的基础上找到了一个解决方法:

cppFunction('
DataFrame testme1() {
DataFrame df = DataFrame::create(Named("a") = seq(1, 2));
df["b"] = List::create(seq(1,10), seq(11,20));
df.attr("class") = "data.frame";
df.attr("row.names") = Rcpp::seq(1, 2);
return df;
}')
testme1()

在将列表列添加到数据帧之后,我必须显式地(重新(设置数据帧属性。

最新更新