# eelbrain.table.difference

eelbrain.table.difference(y, x, c1, c0, match, sub=None, data=None)

Subtract data in one cell from another

Parameters
• y (Union[NDVar, Var, str, Sequence[Union[str, Var, NDVar]]]) – One or several variables for which to calculate the difference.

• x (Union[Factor, Interaction, NestedEffect, str]) – Model for subtraction, providing categories to compute `c1 - c0`.

• c1 (Union[str, Tuple[str, ...]]) – Name of the cell in `x` that forms the minuend.

• c0 (Union[str, Tuple[str, ...]]) – Name of the cell in `x` that is to be subtracted from `c1`.

• match (Union[Factor, Interaction, NestedEffect, str]) – Units over which measurements were repeated. `c1 - c0` will be calculated separately for each level of `match` (e.g. `"subject"`, or `"subject % condition"`).

• sub (Union[Var, ndarray, str]) – Only include a subset of the data.

• data (Dataset) – If a Dataset is specified other arguments can be str instead of data-objects and will be retrieved from `data`.

Returns

Dataset with the difference between `c1` and `c0` on `y`.

Return type

diff

Examples

ERP difference wave: assuming a dataset `data` with EEG data (`data['eeg']`), a variable named `'condition'` with levels `'expected'` and `'unexpected'`, and multiple subjects, the following will generate the `unexpected - expected` difference waves:

```>>> diff = table.difference('eeg', 'condition', 'unexpected', 'expected',
... 'subject', data=data)
```

If `data` also contains a different factor crossed with `condition`, called `'word'` with levels `'verb'` abd `'adjective'`, then separate difference waves for verbs and adjectives can be computed with:

```>>> diff = table.difference('eeg', 'condition', 'unexpected', 'expected',
... 'subject % word', data=data)
```

Given the latter, the difference of the difference waves could be computed with:

```>>> diffdiff = table.difference('eeg', 'word', 'verb', 'adjective',
... 'subject', data=diff)
```