本文整理汇总了C#中Statistics.Calculate方法的典型用法代码示例。如果您正苦于以下问题:C# Statistics.Calculate方法的具体用法?C# Statistics.Calculate怎么用?C# Statistics.Calculate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Statistics
的用法示例。
在下文中一共展示了Statistics.Calculate方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetStatistics
/// <summary>
/// Returns the calculated <see cref="Statistics"/> from buffered data of the specified <paramref name="export"/>.
/// </summary>
/// <param name="export"><see cref="Export"/> for which statistical values are to be calculated.</param>
/// <returns>The calculated <see cref="Statistics"/> from buffered data of the specified <paramref name="export"/>.</returns>
protected virtual Statistics GetStatistics(Export export)
{
Statistics stats = new Statistics();
DataSet rawData = GetBufferedData(export.Name);
ExportSetting filterClauseSetting = export.FindSetting("FilterClause");
ExportSetting slopeThresholdSetting = export.FindSetting("SlopeThreshold");
if (rawData != null)
{
// Buffered data is available for the export, so calculate the statistics.
if (slopeThresholdSetting != null)
{
// Slope-based data elimination is to be employed.
double slopeThreshold = Convert.ToDouble(slopeThresholdSetting.Value);
lock (rawData)
{
foreach (ExportRecord record in export.Records)
{
// Run data for each record against the slope-based data elimination algorithm.
double slope = 0;
bool delete = false;
DataRow[] records = rawData.Tables[0].Select(string.Format("Instance=\'{0}\' And ID={1}", record.Instance, record.Identifier), "TimeTag");
if (records.Length > 0)
{
for (int i = 0; i < records.Length - 1; i++)
{
// Calculate slope for the data using standard slope formula.
slope = Math.Abs((((float)records[i]["Value"]) - (float)records[i + 1]["Value"]) / (Ticks.ToSeconds((Convert.ToDateTime(records[i]["TimeTag"])).Ticks) - Ticks.ToSeconds((Convert.ToDateTime(records[i + 1]["TimeTag"])).Ticks)));
if (slope > slopeThreshold)
{
// Data for the point has slope that exceeds the specified slope threshold.
delete = true;
break;
}
}
if (delete)
{
// Data for the record is to be excluded from the calculation.
for (int i = 0; i < records.Length; i++)
{
records[i].Delete();
}
OnStatusUpdate(string.Format("{0}:{1} data eliminated (Slope={2}; Threshold={3})", record.Instance, record.Identifier, slope, slopeThreshold));
}
}
}
}
}
if (filterClauseSetting == null)
{
// No filter clause setting exist for the export.
stats.Calculate(rawData, string.Empty);
}
else
{
// Filter clause setting exists for the export so use it.
stats.Calculate(rawData, filterClauseSetting.Value);
}
}
return stats;
}