/usr/lib/R/site-library/dplyr/include/dplyr/Result/Mutater.h is in r-cran-dplyr 0.7.4-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | #ifndef dplyr_Result_Mutater_H
#define dplyr_Result_Mutater_H
#include <dplyr/Result/Result.h>
namespace dplyr {
template <int RTYPE, typename Derived>
class Mutater : public Result {
public:
virtual SEXP process(const GroupedDataFrame& gdf) {
int ng = gdf.ngroups();
Vector<RTYPE> out = no_init(gdf.nrows());
GroupedDataFrame::group_iterator git = gdf.group_begin();
for (int i = 0; i < ng; i++, ++git) {
static_cast<Derived&>(*this).process_slice(out, *git, *git);
}
return out;
}
virtual SEXP process(const RowwiseDataFrame& gdf) {
int ng = gdf.ngroups();
Vector<RTYPE> out = no_init(gdf.nrows());
RowwiseDataFrame::group_iterator git = gdf.group_begin();
for (int i = 0; i < ng; i++, ++git) {
static_cast<Derived&>(*this).process_slice(out, *git, *git);
}
return out;
}
virtual SEXP process(const FullDataFrame& df) {
Vector<RTYPE> out = no_init(df.nrows());
const SlicingIndex& index = df.get_index();
static_cast<Derived&>(*this).process_slice(out, index, index);
return out;
}
virtual SEXP process(const SlicingIndex& index) {
int nrows = index.size();
Vector<RTYPE> out = no_init(nrows);
NaturalSlicingIndex fake(nrows);
static_cast<Derived&>(*this).process_slice(out, index, fake);
return out;
}
};
}
#endif
|