# FILTER

### Description

Filter data on a *vector,* *grouped scalar* or *grouped vector*, by comparing with a threshold. Only data which fulfills that boolean condition is kept.

### Filter(Vector\<any>, Scalar\<Text>, Scalar\<any>)

```java
FILTER(vector: Vector<any>, 
       comparisonSymbol: Scalar<Text>, 
       threshold: Scalar<any>): Vector<any>
```

Filter data in the given *vector* by comparing with the threshold.

#### Parameters

<table><thead><tr><th width="203">Parameter</th><th>Description</th></tr></thead><tbody><tr><td>vector</td><td>A <em>vector</em> whose data is to be filtered</td></tr><tr><td>comparisonSymbol</td><td>The comparison symbol. One of: <code>&#x3C;</code>, <code>&#x3C;=</code>, <code>=</code>, <code>!=</code>, <code>>=</code>, <code>></code></td></tr><tr><td>threshold</td><td>A <em>scalar</em> which is used to filter data.</td></tr></tbody></table>

#### Returns

*Vector* of same type as from the first function parameter, with filtered data.

### Examples

Filter events, so that only values > 1000 are kept in the vector.

```java
FILTER($GridPowerConsumption, '>', 1000)
```

***

### Filter(GroupedScalar\<any, any>, Scalar\<Text>, Scalar\<any>)

```java
FILTER(groupedScalar: GroupedScalar<any, any>, 
       comparisonSymbol: Scalar<Text>, 
       threshold: Scalar<any>): GroupedScalar<any, any>
```

Filter data in the given *grouped scalar* by comparing with the threshold. Empty groups are removed from the *grouped scalar.*

#### Parameters

<table><thead><tr><th width="203">Parameter</th><th>Description</th></tr></thead><tbody><tr><td>groupedScalar</td><td>A <em>vector</em> whose data is to be filtered.</td></tr><tr><td>comparisonSymbol</td><td>The comparison symbol. One of: <code>&#x3C;</code>, <code>&#x3C;=</code>, <code>=</code>, <code>!=</code>, <code>>=</code>, <code>></code></td></tr><tr><td>threshold</td><td>A <em>scalar</em> which is used to filter data.</td></tr></tbody></table>

#### Returns

*Grouped scalar* of same type as from the first function parameter, with filtered data.

### Examples

Filter events in the *grouped scalar*, so that only values > 1000 are kept in the vector.

```java
FILTER(MIN(GROUP_BY_DEVICE($PowerConsumption)), '!=', 0)
```

***

### Filter(GroupedVector\<any, any>, Scalar\<Text>, Scalar\<any>)

```java
FILTER(groupedVector: GroupedVector<any, any>, 
       comparisonSymbol: Scalar<Text>, 
       threshold: Scalar<any>): GroupedVector<any, any>
```

Filter data in the given *grouped vector* by comparing with the threshold. Empty groups are removed from the *grouped vector.*

#### Parameters

<table><thead><tr><th width="203">Parameter</th><th>Description</th></tr></thead><tbody><tr><td>groupedVector</td><td>A <em>vector</em> whose data is to be filtered.</td></tr><tr><td>comparisonSymbol</td><td>The comparison symbol. One of: <code>&#x3C;</code>, <code>&#x3C;=</code>, <code>=</code>, <code>!=</code>, <code>>=</code>, <code>></code></td></tr><tr><td>threshold</td><td>A <em>scalar</em> which is used to filter data.</td></tr></tbody></table>

#### Returns

*Grouped vector* of same type as from the first function parameter, with filtered data.

### Examples

Filter events, so that only values > 1000 are kept in the *grouped vector*.

```java
FILTER(GROUP_BY_DEVICE($PowerConsumption), '<=', 200)
```
