#define KRUSKALWALLISCOMMAND_H
#include "command.hpp"
-
+#include "inputdata.h"
+#include "sharedrabundvector.h"
class KruskalWallisCommand : public Command {
string getDescription() { return "Non-parametric method for testing whether samples originate from the same distribution."; }
struct groupRank {
- sstring group;
+ string group;
double value;
double rank;
};
int execute();
void help() { m->mothurOut(getHelpString()); }
- void assignRank(vector<groupRank>);
+ void assignRank(vector<groupRank>&);
+ void assignValue(vector<groupRank>&);
+
private:
- string outputDir;
+ string outputDir, sharedfile, groups;
+ bool abort;
+ set<string> labels;
+ vector<string> outputNames, Groups;
vector<int> counts;
vector<double> rankSums;
vector<double> rankMeans;
- bool comparevalue(const groupRank &a, const groupRank &b) { return a.value < b.value; }
- bool equalvalue(const groupRank &a, const groupRank &b) { return a.value == b.value; }
- bool comparerank(const groupRank &a, const groupRank &b) { return a.rank < b.rank; }
- bool equalrank(const groupRank &a, const groupRank &b) { return a.rank == b.rank; }
- bool equalgroup(const groupRank &a, const groupRank &b) { return a.group == b.group; }
+ static bool comparevalue(const groupRank &a, const groupRank &b) { return a.value < b.value; }
+ static bool equalvalue(const groupRank &a, const groupRank &b) { return a.value == b.value; }
+ static bool comparerank(const groupRank &a, const groupRank &b) { return a.rank < b.rank; }
+ static bool equalrank(const groupRank &a, const groupRank &b) { return a.rank == b.rank; }
+ static bool equalgroup(const groupRank &a, const groupRank &b) { return a.group == b.group; }
};