/usr/lib/R/site-library/dplyr/include/dplyr/Result/Count_Distinct.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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | #ifndef dplyr_Result_Count_Distinct_H
#define dplyr_Result_Count_Distinct_H
#include <tools/hash.h>
#include <dplyr/visitor_set/VisitorEqualPredicate.h>
#include <dplyr/visitor_set/VisitorHash.h>
#include <dplyr/Result/Processor.h>
namespace dplyr {
template <typename Visitor>
class Count_Distinct : public Processor<INTSXP, Count_Distinct<Visitor> > {
public:
typedef VisitorHash<Visitor> Hash;
typedef VisitorEqualPredicate<Visitor> Pred;
typedef dplyr_hash_set<int, Hash, Pred > Set;
Count_Distinct(Visitor v_):
v(v_), set(0, Hash(v), Pred(v))
{}
inline int process_chunk(const SlicingIndex& indices) {
set.clear();
set.rehash(indices.size());
int n = indices.size();
for (int i = 0; i < n; i++) {
set.insert(indices[i]);
}
return set.size();
}
private:
Visitor v;
Set set;
};
template <typename Visitor>
class Count_Distinct_Narm : public Processor<INTSXP, Count_Distinct_Narm<Visitor> > {
public:
typedef VisitorHash<Visitor> Hash;
typedef VisitorEqualPredicate<Visitor> Pred;
typedef dplyr_hash_set<int, Hash, Pred > Set;
Count_Distinct_Narm(Visitor v_):
v(v_), set(0, Hash(v), Pred(v))
{}
inline int process_chunk(const SlicingIndex& indices) {
set.clear();
set.rehash(indices.size());
int n = indices.size();
for (int i = 0; i < n; i++) {
int index = indices[i];
if (! v.is_na(index)) {
set.insert(index);
}
}
return set.size();
}
private:
Visitor v;
Set set;
};
}
#endif
|