Quick links:   Flags   Verbs   Functions   Glossary   Release docs

# DSL unset statements¶

You can clear a map key by assigning the empty string as its value: `\$x=""` or `@x=""`. Using `unset` you can remove the key entirely. Examples:

```cat data/small
```
```a=pan,b=pan,i=1,x=0.346791,y=0.726802
a=eks,b=pan,i=2,x=0.758679,y=0.522151
a=wye,b=wye,i=3,x=0.204603,y=0.338318
a=eks,b=wye,i=4,x=0.381399,y=0.134188
a=wye,b=pan,i=5,x=0.573288,y=0.863624
```
```mlr put 'unset \$x, \$a' data/small
```
```b=pan,i=1,y=0.726802
b=pan,i=2,y=0.522151
b=wye,i=3,y=0.338318
b=wye,i=4,y=0.134188
b=pan,i=5,y=0.863624
```

This can also be done, of course, using `mlr cut -x`. You can also clear out-of-stream or local variables, at the base name level, or at an indexed sublevel:

```mlr put -q '@sum[\$a][\$b] += \$x; end { dump; unset @sum; dump }' data/small
```
```{
"sum": {
"pan": {
"pan": 0.346791
},
"eks": {
"pan": 0.758679,
"wye": 0.381399
},
"wye": {
"wye": 0.204603,
"pan": 0.573288
}
}
}
{}
```
```mlr put -q '@sum[\$a][\$b] += \$x; end { dump; unset @sum["eks"]; dump }' data/small
```
```{
"sum": {
"pan": {
"pan": 0.346791
},
"eks": {
"pan": 0.758679,
"wye": 0.381399
},
"wye": {
"wye": 0.204603,
"pan": 0.573288
}
}
}
{
"sum": {
"pan": {
"pan": 0.346791
},
"wye": {
"wye": 0.204603,
"pan": 0.573288
}
}
}
```

If you use `unset all` (or `unset @*` which is synonymous), that will unset all out-of-stream variables which have been assigned up to that point.