mirror of
https://github.com/nushell/nushell.git
synced 2025-08-09 09:25:38 +02:00
Math Documentation (#1982)
* Adding math docs * Add some comments to calculate * Remove redudant message Message already shows up in subcommands list * Added not working example Accidentantly * Remove table
This commit is contained in:
@ -1,45 +0,0 @@
|
||||
# average
|
||||
Calculate the average of values in a column.
|
||||
|
||||
## Examples
|
||||
To get the average of the file sizes in a directory, simply pipe the size column from the ls command to the average command.
|
||||
|
||||
```shell
|
||||
> ls | get size | average
|
||||
━━━━━━━━━
|
||||
<value>
|
||||
━━━━━━━━━
|
||||
2282.727272727273
|
||||
━━━━━━━━━
|
||||
```
|
||||
|
||||
```shell
|
||||
> pwd | split-row / | size | get chars | average
|
||||
━━━━━━━━━
|
||||
<value>
|
||||
━━━━━━━━━
|
||||
5.250000000000000
|
||||
━━━━━━━━━
|
||||
```
|
||||
|
||||
Note that average only works for integer and byte values. If the shell doesn't recognize the values in a column as one of those types, it will return an error.
|
||||
One way to solve this is to convert each row to an integer when possible and then pipe the result to `average`
|
||||
|
||||
```shell
|
||||
> open tests/fixtures/formats/caco3_plastics.csv | get tariff_item | average
|
||||
error: Unrecognized type in stream: Primitive(String("2509000000"))
|
||||
- shell:1:0
|
||||
1 | open tests/fixtures/formats/caco3_plastics.csv | get tariff_item | average
|
||||
| ^^^^ source
|
||||
```
|
||||
|
||||
```shell
|
||||
> open tests/fixtures/formats/caco3_plastics.csv | get tariff_item | str --to-int | average
|
||||
━━━━━━━━━━━━━━━━━━━
|
||||
<value>
|
||||
───────────────────
|
||||
3239404444.000000
|
||||
━━━━━━━━━━━━━━━━━━━
|
||||
```
|
||||
|
||||
|
108
docs/commands/math.md
Normal file
108
docs/commands/math.md
Normal file
@ -0,0 +1,108 @@
|
||||
# math
|
||||
Mathematical functions that generally only operate on a list of numbers (integers, decimals, bytes) and tables.
|
||||
Currently the following functions are implemented:
|
||||
`math average` Get the average of a list of number
|
||||
`math min` Get the minimum of a list of numbers
|
||||
`math max` Get the maximum of a list of numbers
|
||||
|
||||
However, the mathematical functions like `min` and `max` are more permissive and also work on `Dates`.
|
||||
|
||||
## Examples
|
||||
To get the average of the file sizes in a directory, simply pipe the size column from the ls command to the average command.
|
||||
|
||||
### List of Numbers (Integers, Decimals, Bytes)
|
||||
```shell
|
||||
> ls
|
||||
# │ name │ type │ size │ modified
|
||||
────┼────────────────────┼──────┼──────────┼─────────────
|
||||
0 │ CODE_OF_CONDUCT.md │ File │ 3.4 KB │ 4 days ago
|
||||
1 │ CONTRIBUTING.md │ File │ 1.3 KB │ 4 days ago
|
||||
2 │ Cargo.lock │ File │ 106.3 KB │ 6 mins ago
|
||||
3 │ Cargo.toml │ File │ 4.6 KB │ 3 days ago
|
||||
4 │ LICENSE │ File │ 1.1 KB │ 4 days ago
|
||||
5 │ Makefile.toml │ File │ 449 B │ 4 days ago
|
||||
6 │ README.md │ File │ 16.0 KB │ 6 mins ago
|
||||
7 │ TODO.md │ File │ 0 B │ 6 mins ago
|
||||
8 │ assets │ Dir │ 128 B │ 4 days ago
|
||||
9 │ build.rs │ File │ 78 B │ 4 days ago
|
||||
10 │ crates │ Dir │ 672 B │ 3 days ago
|
||||
11 │ debian │ Dir │ 352 B │ 4 days ago
|
||||
12 │ docker │ Dir │ 288 B │ 4 days ago
|
||||
13 │ docs │ Dir │ 160 B │ 4 days ago
|
||||
14 │ features.toml │ File │ 632 B │ 4 days ago
|
||||
15 │ images │ Dir │ 160 B │ 4 days ago
|
||||
16 │ justfile │ File │ 234 B │ 3 days ago
|
||||
17 │ rustfmt.toml │ File │ 16 B │ 4 days ago
|
||||
18 │ src │ Dir │ 128 B │ 4 days ago
|
||||
19 │ target │ Dir │ 192 B │ 8 hours ago
|
||||
20 │ tests │ Dir │ 192 B │ 4 days ago
|
||||
|
||||
> ls | get size | math average
|
||||
───┬────────
|
||||
0 │ 6.5 KB
|
||||
───┴────────
|
||||
|
||||
> ls | get size | math min
|
||||
───┬─────
|
||||
0 │ 0 B
|
||||
───┴─────
|
||||
> ls | get size | math max
|
||||
───┬──────────
|
||||
0 │ 106.3 KB
|
||||
───┴──────────
|
||||
|
||||
# Dates
|
||||
> ls | get modified | math min
|
||||
2020-06-09 17:25:51.798743222 UTC
|
||||
|
||||
> ls | get modified | math max
|
||||
2020-06-14 05:49:59.637449186 UT
|
||||
```
|
||||
|
||||
### Operations on tables
|
||||
```shell
|
||||
> pwd | split row / | size
|
||||
───┬───────┬───────┬───────┬────────────
|
||||
# │ lines │ words │ chars │ max length
|
||||
───┼───────┼───────┼───────┼────────────
|
||||
0 │ 0 │ 1 │ 5 │ 5
|
||||
1 │ 0 │ 1 │ 7 │ 7
|
||||
2 │ 0 │ 1 │ 9 │ 9
|
||||
3 │ 0 │ 1 │ 7 │ 7
|
||||
───┴───────┴───────┴───────┴────────────
|
||||
|
||||
> pwd | split row / | size | math max
|
||||
───────────┬───
|
||||
lines │ 0
|
||||
words │ 1
|
||||
chars │ 9
|
||||
max length │ 9
|
||||
────────────┴───
|
||||
|
||||
> pwd | split row / | size | math average
|
||||
────────────┬────────
|
||||
lines │ 0.0000
|
||||
words │ 1.0000
|
||||
chars │ 7.0000
|
||||
max length │ 7.0000
|
||||
────────────┴────────
|
||||
```
|
||||
|
||||
## Errors
|
||||
`math` functions are aggregation functions so empty lists are invalid
|
||||
```shell
|
||||
> echo [] | math average
|
||||
error: Error: Unexpected: Cannot perform aggregate math operation on empty data
|
||||
```
|
||||
|
||||
Note `math` functions only work on list of numbers (integers, decimals, bytes) and tables of numbers, if any other types are piped into the function
|
||||
then unexpected results can occur.
|
||||
|
||||
```shell
|
||||
> echo [1 2 a ] | math average
|
||||
0
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user