r语言 - Rcpp如何给出给定长度的向量在每个单元格中相同的值

  • 本文关键字:向量 单元格 Rcpp r语言 r rcpp
  • 更新时间 :
  • 英文 :


在下面的代码中,vectorTest函数的输出受到Tglobe中项目数量的限制。如上所述,输出是101。如果Tglobe = c(100,101),则输出为101,102。

我想做的是创建一个大小为speed的向量,并用相同的值填充它。换句话说,对于Tglobe <- 100,我希望输出为101,102,103,104,105

#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
Rcpp::NumericVector vectorTest(Rcpp::NumericVector Tglobe, Rcpp::NumericVector speed) {
Rcpp::NumericVector test(speed.size(), NAN);
test = Tglobe + speed;
return(test);
}
/*** R
speed <- c(1,2,3,4,5)
Tglobe <- 100
vectorTest(Tglobe, speed)
*/

你的问题有点奇怪。所以我把它读成

  • 如何实例化一个给定标量的向量?你已经回答了,尽管通过粘贴错误的值(NAN,甚至不是c++常数)在
  • 我如何添加两个向量?你已经回答过了
  • 我如何推广到一个输入向量(和返回矩阵)?留作练习。

代码
#include <Rcpp.h>
// [[Rcpp::export]]
Rcpp::NumericVector vectorTest(double globe, Rcpp::NumericVector speed) {
Rcpp::NumericVector globevec(speed.size(), globe);
return globevec + speed;
}
/*** R
speed <- c(1,2,3,4,5)
Tglobe <- 100
vectorTest(Tglobe, speed)
*/

输出
> Rcpp::sourceCpp("~/git/stackoverflow/68784602/answer.cpp")
> speed <- c(1,2,3,4,5)
> Tglobe <- 100
> vectorTest(Tglobe, speed)
[1] 101 102 103 104 105
> 

最新更新