Message-ID: <19923.61121.308852.867199@max.nulle.part>
Date: 2011-05-18T16:07:29Z
From: Dirk Eddelbuettel
Subject: [Rcpp-devel] Selecting rows and columns of matrices
In-Reply-To: <BANLkTinuL1f-NoJrYDZpLLOs86-KBR2d1A@mail.gmail.com>
On 18 May 2011 at 08:42, Chris DuBois wrote:
| Hi all,
|
| I've copied the following from a portion of the "Using matrices" section of the
| Rcpp Quick Reference guide. ?I get a compilation error that I'm having trouble
| decoding. ?Commenting out the third line allows it to compile, so it must be
| something I've done wrong with the column selector, but I don't see it. ?
|
| Thanks in advance,
| Chris
|
| PS. My?g++ version is 4.5.2, in case that helps.
|
| src <- '
| NumericMatrix xx(4, 5);
| std::fill(xx.begin(), xx.end(), 8);
| NumericMatrix::Column zzcol = xx( _, 1);
| return(wrap(1));
| ?'
| fun <- ?cxxfunction(signature(x="numeric"), body = src, plugin="Rcpp")
|
| file3011595e.cpp:35:39: error: invalid conversion from ?SEXPREC*? to
| ?int?
| file3011595e.cpp:35:39: error: ? initializing argument 1 of ?Rcpp::Matrix
| <RTYPE>::Proxy Rcpp::Matrix<RTYPE>::operator()(int, int) [with int RTYPE = 14,
| Rcpp::Matrix<RTYPE>::Proxy = double&]?
| file3011595e.cpp:35:39: error: conversion from ?Rcpp::traits::storage_type
| <14>::type? to non-scalar type ?Rcpp::Matrix<14>::Column? requested
| make: *** [file3011595e.o] Error 1
Works for me:
R> src <- '
+ NumericMatrix xx(4, 5);
+ std::fill(xx.begin(), xx.end(), 8);
+ NumericMatrix::Column zzcol = xx( _, 1);
+ return(wrap(1));
+ '
R> fun <- cxxfunction(signature(x="numeric"), body = src, plugin="Rcpp")
R> fun(4.44)
[1] 1
R>
Are you by chance using an ancient Rcpp version?
Dirk
--
Gauss once played himself in a zero-sum game and won $50.
-- #11 at http://www.gaussfacts.com