在Rcpp中设置*only*列名称

squ*_*bar 4 r rcpp

我想仅使用Rcpp设置矩阵的列名,但保持行名不变.据我所知,该dimnames属性仅设置两者.例如:

这是我想要做的最小例子,但只是在Rcpp而不是R:

my.mat <- diag(3)
colnames( my.mat ) <- c( "A", "B", "C")
my.mat
     A B C
[1,] 1 0 0
[2,] 0 1 0
[3,] 0 0 1
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

Kev*_*hey 18

Rcpp提供的较新版本rownames()colnames()作为其R对应物的功能:

#include <Rcpp.h>
using namespace Rcpp;

// [[Rcpp::export]]
NumericMatrix test(NumericMatrix x)
{
    rownames(x) = CharacterVector::create("a", "b", "c");
    colnames(x) = CharacterVector::create("A", "B", "C");
    return x;
}

/*** R
test(matrix(1:9, nrow = 3))
*/
Run Code Online (Sandbox Code Playgroud)

给我

> test(matrix(1:9, nrow = 3))
  A B C
a 1 4 7
b 2 5 8
c 3 6 9
Run Code Online (Sandbox Code Playgroud)