StandardDeviationAnalyzer

Struct StandardDeviationAnalyzer 

Source
pub struct StandardDeviationAnalyzer { /* private fields */ }
Expand description

Analyzer that computes standard deviation and variance.

This analyzer calculates both population and sample standard deviation, providing insights into data variability and spread. It uses numerically stable algorithms to avoid precision loss with large datasets.

§Example

use term_guard::analyzers::advanced::StandardDeviationAnalyzer;
use datafusion::prelude::*;

let ctx = SessionContext::new();
// Register your data table

let analyzer = StandardDeviationAnalyzer::new("temperature");
let state = analyzer.compute_state_from_data(&ctx).await?;
let metric = analyzer.compute_metric_from_state(&state)?;

if let MetricValue::Map(stats) = metric {
    println!("Temperature statistics:");
    println!("  Standard Deviation: {:?}", stats.get("std_dev"));
    println!("  Variance: {:?}", stats.get("variance"));
    println!("  Sample Std Dev: {:?}", stats.get("sample_std_dev"));
}

Implementations§

Source§

impl StandardDeviationAnalyzer

Source

pub fn new(column: impl Into<String>) -> Self

Creates a new standard deviation analyzer for the specified column.

Source

pub fn column(&self) -> &str

Returns the column being analyzed.

Trait Implementations§

Source§

impl Analyzer for StandardDeviationAnalyzer

Source§

type State = StandardDeviationState

The state type for incremental computation.
Source§

type Metric = MetricValue

The metric type produced by this analyzer.
Source§

fn compute_state_from_data<'life0, 'life1, 'async_trait>( &'life0 self, ctx: &'life1 SessionContext, ) -> Pin<Box<dyn Future<Output = AnalyzerResult<Self::State>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Computes the state from the input data. Read more
Source§

fn compute_metric_from_state( &self, state: &Self::State, ) -> AnalyzerResult<Self::Metric>

Computes the final metric from the accumulated state. Read more
Source§

fn name(&self) -> &str

Returns the name of this analyzer. Read more
Source§

fn description(&self) -> &str

Returns a description of what this analyzer computes. Read more
Source§

fn columns(&self) -> Vec<&str>

Returns the column(s) this analyzer operates on, if any. Read more
Source§

fn merge_states(&self, states: Vec<Self::State>) -> AnalyzerResult<Self::State>

Merges multiple states into a single state. Read more
Source§

fn metric_key(&self) -> String

Returns the metric key for storing results. Read more
Source§

fn is_combinable(&self) -> bool

Indicates whether this analyzer can be combined with others. Read more
Source§

impl Clone for StandardDeviationAnalyzer

Source§

fn clone(&self) -> StandardDeviationAnalyzer

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for StandardDeviationAnalyzer

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

Source§

impl<T> ErasedDestructor for T
where T: 'static,