use of org.knime.core.data.def.DoubleCell in project knime-core by knime.
the class OneWayANOVAStatistics method getGroupStatistics.
/**
* Get descriptive statistics for the given Group.
* @param groupIndex the index of the group
* @return the descriptive statistics for this group.
*/
public List<DataCell> getGroupStatistics(final int groupIndex) {
List<DataCell> cells = new ArrayList<DataCell>();
cells.add(new StringCell(m_column));
cells.add(new StringCell(m_groups.get(groupIndex)));
SummaryStatistics stats = m_gstats.get(groupIndex);
cells.add(new IntCell((int) stats.getN()));
cells.add(new IntCell(m_missing.get(groupIndex).intValue()));
cells.add(new IntCell(m_missingGroup.intValue()));
cells.add(new DoubleCell(stats.getMean()));
cells.add(new DoubleCell(stats.getStandardDeviation()));
cells.add(new DoubleCell(StatsUtil.getStandardError(stats)));
cells.add(new DoubleCell(m_confidenceIntervalProp));
long df = stats.getN() - 1;
TDistribution distribution = new TDistribution(df);
double tValue = FastMath.abs(distribution.inverseCumulativeProbability((1 - m_confidenceIntervalProp) / 2));
double confidenceDelta = tValue * StatsUtil.getStandardError(stats);
double confidenceLowerBound = stats.getMean() - confidenceDelta;
double confidenceUpperBound = stats.getMean() + confidenceDelta;
cells.add(new DoubleCell(confidenceLowerBound));
cells.add(new DoubleCell(confidenceUpperBound));
cells.add(new DoubleCell(stats.getMin()));
cells.add(new DoubleCell(stats.getMax()));
return cells;
}
use of org.knime.core.data.def.DoubleCell in project knime-core by knime.
the class OneWayANOVAStatistics method getGroupsTotalStatistics.
/**
* Get descriptive statistics for all groups.
* @return the descriptive statistics for all groups
*/
public List<DataCell> getGroupsTotalStatistics() {
List<DataCell> cells = new ArrayList<DataCell>();
cells.add(new StringCell(m_column));
cells.add(new StringCell("Total"));
SummaryStatistics stats = m_stats;
cells.add(new IntCell((int) stats.getN()));
int missingCount = 0;
for (MutableInteger m : m_missing) {
missingCount += m.intValue();
}
cells.add(new IntCell(missingCount));
cells.add(new IntCell(m_missingGroup.intValue()));
cells.add(new DoubleCell(stats.getMean()));
cells.add(new DoubleCell(stats.getStandardDeviation()));
cells.add(new DoubleCell(StatsUtil.getStandardError(stats)));
cells.add(new DoubleCell(m_confidenceIntervalProp));
long df = stats.getN() - 1;
TDistribution distribution = new TDistribution(df);
double tValue = FastMath.abs(distribution.inverseCumulativeProbability((1 - m_confidenceIntervalProp) / 2));
double confidenceDelta = tValue * StatsUtil.getStandardError(stats);
double confidenceLowerBound = stats.getMean() - confidenceDelta;
double confidenceUpperBound = stats.getMean() + confidenceDelta;
cells.add(new DoubleCell(confidenceLowerBound));
cells.add(new DoubleCell(confidenceUpperBound));
cells.add(new DoubleCell(stats.getMin()));
cells.add(new DoubleCell(stats.getMax()));
return cells;
}
use of org.knime.core.data.def.DoubleCell in project knime-core by knime.
the class OneWayANOVAStatistics method getTotal.
/**
* Get the row of the ANOVA table with the cells "Total".
*/
private List<DataCell> getTotal(final ANOVA anova) {
List<DataCell> cells = new ArrayList<DataCell>();
cells.add(new StringCell(m_column));
cells.add(new StringCell(SOURCE_TOTAL));
cells.add(new DoubleCell(anova.getSqurb() + anova.getSquri()));
cells.add(new IntCell((int) (anova.getDfb() + anova.getDfi())));
cells.add(DataType.getMissingCell());
cells.add(DataType.getMissingCell());
cells.add(DataType.getMissingCell());
return cells;
}
use of org.knime.core.data.def.DoubleCell in project knime-core by knime.
the class OneSampleTTestStatistics method getDescStats.
/**
* Get descriptive statistics for the given column
* @param rowID the row key
* @param column the name of the column
* @param stats the statistics of the column
* @param missing the missing values in this column
* @return a DataRow with descriptive statistics
*/
private List<DataCell> getDescStats(final String column, final SummaryStatistics stats, final MutableInteger missing) {
List<DataCell> cells = new ArrayList<DataCell>();
cells.add(new StringCell(column));
cells.add(new IntCell((int) stats.getN()));
cells.add(new IntCell(missing.intValue()));
cells.add(new DoubleCell(stats.getMean()));
cells.add(new DoubleCell(stats.getStandardDeviation()));
cells.add(new DoubleCell(StatsUtil.getStandardError(stats)));
return cells;
}
use of org.knime.core.data.def.DoubleCell in project knime-core by knime.
the class AppendVariableToTableNodeModel method createColumnRearranger.
private ColumnRearranger createColumnRearranger(final DataTableSpec spec) throws InvalidSettingsException {
ColumnRearranger arranger = new ColumnRearranger(spec);
Set<String> nameHash = new HashSet<String>();
for (DataColumnSpec c : spec) {
nameHash.add(c.getName());
}
List<Pair<String, FlowVariable.Type>> vars;
if (m_settings.getIncludeAll()) {
vars = getAllVariables();
} else {
vars = m_settings.getVariablesOfInterest();
}
if (vars.isEmpty()) {
throw new InvalidSettingsException("No variables selected");
}
DataColumnSpec[] specs = new DataColumnSpec[vars.size()];
final DataCell[] values = new DataCell[vars.size()];
for (int i = 0; i < vars.size(); i++) {
Pair<String, FlowVariable.Type> c = vars.get(i);
String name = c.getFirst();
DataType type;
switch(c.getSecond()) {
case DOUBLE:
type = DoubleCell.TYPE;
try {
double dValue = peekFlowVariableDouble(name);
values[i] = new DoubleCell(dValue);
} catch (NoSuchElementException e) {
throw new InvalidSettingsException("No such flow variable (of type double): " + name);
}
break;
case INTEGER:
type = IntCell.TYPE;
try {
int iValue = peekFlowVariableInt(name);
values[i] = new IntCell(iValue);
} catch (NoSuchElementException e) {
throw new InvalidSettingsException("No such flow variable (of type int): " + name);
}
break;
case STRING:
type = StringCell.TYPE;
try {
String sValue = peekFlowVariableString(name);
sValue = sValue == null ? "" : sValue;
values[i] = new StringCell(sValue);
} catch (NoSuchElementException e) {
throw new InvalidSettingsException("No such flow variable (of type String): " + name);
}
break;
default:
throw new InvalidSettingsException("Unsupported variable type: " + c.getSecond());
}
if (nameHash.contains(name) && !name.toLowerCase().endsWith("(variable)")) {
name = name.concat(" (variable)");
}
String newName = name;
int uniquifier = 1;
while (!nameHash.add(newName)) {
newName = name + " (#" + (uniquifier++) + ")";
}
specs[i] = new DataColumnSpecCreator(newName, type).createSpec();
}
arranger.append(new AbstractCellFactory(specs) {
/**
* {@inheritDoc}
*/
@Override
public DataCell[] getCells(final DataRow row) {
return values;
}
});
return arranger;
}
Aggregations