pub struct Series { /* private fields */ }Expand description
A Series represents a single column of data with a name and dtype
Implementations§
Source§impl Series
impl Series
Sourcepub fn new(
name: impl Into<String>,
data: ArrayBase<OwnedRepr<f64>, Dim<[usize; 1]>>,
) -> Series
pub fn new( name: impl Into<String>, data: ArrayBase<OwnedRepr<f64>, Dim<[usize; 1]>>, ) -> Series
Create a new numeric series
Examples found in repository?
examples/simple.rs (line 18)
12fn main() {
13 println!("=== StatOxide Simple Example ===\n");
14
15 // 1. Create a DataFrame
16 println!("1. Creating DataFrame:");
17 let mut columns = HashMap::new();
18 columns.insert("x".to_string(), Series::new("x", Array1::from_vec(vec![1.0, 2.0, 3.0, 4.0, 5.0])));
19 columns.insert("y".to_string(), Series::new("y", Array1::from_vec(vec![2.0, 4.0, 5.0, 4.0, 5.0])));
20
21 let df = DataFrame::from_series(columns).unwrap();
22
23 println!(" DataFrame shape: {} rows × {} columns", df.n_rows(), df.n_cols());
24 println!(" Column names: {:?}\n", df.column_names());
25
26 // 2. Parse a formula
27 println!("2. Parsing formula:");
28 let formula = Formula::parse("y ~ x").unwrap();
29 println!(" Formula parsed successfully, variables: {:?}\n", formula.variables());
30
31 // 3. Compute statistics
32 println!("3. Computing statistics:");
33 let x_view = df.column("x").unwrap().data();
34 let y_view = df.column("y").unwrap().data();
35
36 // Convert views to owned arrays
37 let x_data = x_view.to_owned();
38 let y_data = y_view.to_owned();
39
40 let x_mean = mean(&x_data).unwrap();
41 let x_std = std(&x_data, 1.0).unwrap();
42 let corr = correlation(&x_data, &y_data).unwrap();
43
44 println!(" Mean of x: {:.4}", x_mean);
45 println!(" Std of x: {:.4}", x_std);
46 println!(" Correlation(x, y): {:.4}\n", corr);
47
48 // 4. Demonstrate module structure
49 println!("4. Module structure available:");
50 println!(" - statoxide::models::* (GLM, linear regression, mixed effects)");
51 println!(" - statoxide::stats::* (statistical functions and tests)");
52 println!(" - statoxide::tsa::* (time series analysis)");
53 println!(" - statoxide::linalg::* (linear algebra)");
54 println!(" - statoxide::utils::* (utilities)\n");
55
56 println!("=== StatOxide version {} ===", statoxide::version());
57}Sourcepub fn factor(
name: impl Into<String>,
levels: Vec<String>,
indices: ArrayBase<OwnedRepr<usize>, Dim<[usize; 1]>>,
) -> Series
pub fn factor( name: impl Into<String>, levels: Vec<String>, indices: ArrayBase<OwnedRepr<usize>, Dim<[usize; 1]>>, ) -> Series
Create a factor/categorical series
Sourcepub fn data(&self) -> ArrayBase<ViewRepr<&f64>, Dim<[usize; 1]>>
pub fn data(&self) -> ArrayBase<ViewRepr<&f64>, Dim<[usize; 1]>>
Get data as array view
Examples found in repository?
examples/simple.rs (line 33)
12fn main() {
13 println!("=== StatOxide Simple Example ===\n");
14
15 // 1. Create a DataFrame
16 println!("1. Creating DataFrame:");
17 let mut columns = HashMap::new();
18 columns.insert("x".to_string(), Series::new("x", Array1::from_vec(vec![1.0, 2.0, 3.0, 4.0, 5.0])));
19 columns.insert("y".to_string(), Series::new("y", Array1::from_vec(vec![2.0, 4.0, 5.0, 4.0, 5.0])));
20
21 let df = DataFrame::from_series(columns).unwrap();
22
23 println!(" DataFrame shape: {} rows × {} columns", df.n_rows(), df.n_cols());
24 println!(" Column names: {:?}\n", df.column_names());
25
26 // 2. Parse a formula
27 println!("2. Parsing formula:");
28 let formula = Formula::parse("y ~ x").unwrap();
29 println!(" Formula parsed successfully, variables: {:?}\n", formula.variables());
30
31 // 3. Compute statistics
32 println!("3. Computing statistics:");
33 let x_view = df.column("x").unwrap().data();
34 let y_view = df.column("y").unwrap().data();
35
36 // Convert views to owned arrays
37 let x_data = x_view.to_owned();
38 let y_data = y_view.to_owned();
39
40 let x_mean = mean(&x_data).unwrap();
41 let x_std = std(&x_data, 1.0).unwrap();
42 let corr = correlation(&x_data, &y_data).unwrap();
43
44 println!(" Mean of x: {:.4}", x_mean);
45 println!(" Std of x: {:.4}", x_std);
46 println!(" Correlation(x, y): {:.4}\n", corr);
47
48 // 4. Demonstrate module structure
49 println!("4. Module structure available:");
50 println!(" - statoxide::models::* (GLM, linear regression, mixed effects)");
51 println!(" - statoxide::stats::* (statistical functions and tests)");
52 println!(" - statoxide::tsa::* (time series analysis)");
53 println!(" - statoxide::linalg::* (linear algebra)");
54 println!(" - statoxide::utils::* (utilities)\n");
55
56 println!("=== StatOxide version {} ===", statoxide::version());
57}Sourcepub fn standardize(&self) -> Option<Series>
pub fn standardize(&self) -> Option<Series>
Standardize (z-score normalization)
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Series
impl<'de> Deserialize<'de> for Series
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Series, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Series, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Serialize for Series
impl Serialize for Series
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
Auto Trait Implementations§
impl Freeze for Series
impl RefUnwindSafe for Series
impl Send for Series
impl Sync for Series
impl Unpin for Series
impl UnsafeUnpin for Series
impl UnwindSafe for Series
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.