Skip to content

jcartw/fullfact

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fullfact

A library for generating full-factorial Design of Experiments (DOEs).

Usage

Add fullfact to your project by using:

npm install --save fullfact

Examples

To create a full-factorial matrix, start by specifying a levels array with the number of levels for each factor in your DOE.

const { fullfact } = require("fullfact");

const levels = [2, 2];
const doe = fullfact(levels);

console.log(doe);
// [ [ 0, 0 ], [ 1, 0 ], [ 0, 1 ], [ 1, 1 ] ]

A convenience function hydratedFullfact is also available to handle the mapping of DOE indices to key-value pairs within an array of objects. This function expects a factors matrix of the form:

  • { [key: string]: any[] }

Consider an example where we have an experiment of two factors: (1) temperature [C] and (2) pressure [kPa]. A factor matrix could be defined as:

const { hydratedFullfact } = require("fullfact");

const factorMatrix = {
   temperature: [10, 20, 30],
   pressure: [90, 100, 110]
};

const hydratedDoe = hydratedFullfact(factorMatrix);

console.log(hydratedDoe);
// [
//   { temperature: 10, pressure: 90 },
//   { temperature: 20, pressure: 90 },
//   { temperature: 30, pressure: 90 },
//   { temperature: 10, pressure: 100 },
//   { temperature: 20, pressure: 100 },
//   { temperature: 30, pressure: 100 },
//   { temperature: 10, pressure: 110 },
//   { temperature: 20, pressure: 110 },
//   { temperature: 30, pressure: 110 }
// ]

Contributing

This package is a derivative work, based on the python project pyDOE. Thanks to Abraham D. Lee and all contributors.

Please feel free to reach out to the author of this package for any and all feedback.

License

BSD (3-Clause)

Copyright (c) 2022, Justin Cartwright

Copyright (c) 2014, Abraham D. Lee

References

About

A library for generating full-factorial DOEs

Resources

License

Stars

Watchers

Forks

Packages

No packages published