Skip to content
Prev 8640 / 10988 Next

[Rcpp-devel] List of Lists to List of Vectors

A slightly improved version:

library(Rcpp)

code = '
SEXP test(List a)
{
  auto l = Rf_length(a[0]);
  using svec = std::vector<SEXP>;
  std::vector<svec> x(l);
  for (List b : a)
  {
    if (b.size() != l)
      stop("Ragged input");
    for (int i = 0; i != l; ++i)
      x[i].push_back(b[i]);
  }
  return wrap(x);
}'

f = cppFunction(code = code, plugins = "cpp11")

res = lapply(f(list(list(T, 1, 'a'),
                    list(F, 2, 'b'))),
             unlist)
On Sun, May 3, 2015 at 11:57 AM, Tim Keitt <tkeitt at utexas.edu> wrote: