pub struct Formula {
pub response: Option<Term>,
pub predictors: Vec<Term>,
pub intercept: bool,
}Expand description
A formula expression (response ~ predictors)
Fields§
§response: Option<Term>Response variable (left side of ~)
predictors: Vec<Term>Predictor terms (right side of ~)
intercept: boolWhether to include intercept (default: true)
Implementations§
Source§impl Formula
impl Formula
Sourcepub fn parse(input: &str) -> Result<Formula, Error>
pub fn parse(input: &str) -> Result<Formula, Error>
Create a new formula from a string
Examples found in repository?
examples/simple.rs (line 28)
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 no_intercept(self) -> Formula
pub fn no_intercept(self) -> Formula
Create a formula with no intercept
Sourcepub fn variables(&self) -> HashSet<String>
pub fn variables(&self) -> HashSet<String>
Get all variable names in the formula
Examples found in repository?
examples/simple.rs (line 29)
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}Trait Implementations§
Auto Trait Implementations§
impl Freeze for Formula
impl RefUnwindSafe for Formula
impl Send for Formula
impl Sync for Formula
impl Unpin for Formula
impl UnsafeUnpin for Formula
impl UnwindSafe for Formula
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.