Предположим, у меня есть класс S4 A
который содержит слот @S
который является data.frame
, data.frame
имеет колонку X
, Я хочу обработать такой объект в C ++, используя Rcpp
, Вот игрушечный пример того, как я это сделал:
SEXP f(S4 A)
{
DataFrame S = A.slot("S");
NumericVector X = S["X"];
// do something with X
}
Мои вопросы следующие.
Есть ли X
все еще ссылка на оригинальные данные R или глубокая копия? Учитывая, как работает Rcpp, это не должно быть копией. Но как я могу быть уверен?
Этот код компилируется и работает хорошо, но IDE (Rstudio не компилятор) выдает предупреждение: conversion from 'Rcpp::SlotProxyPolicy< Rcppp::S4_Impl<PreserveStorage >::SlotProxy' to 'DataFrame' (aka 'DataFrame_Impl< PreserveStorage >') is ambigous.
Что это значит? Это серьезно?
Спасибо
Задача ещё не решена.
Других решений пока нет …