Description Usage Arguments Details Value Shorthand in fixest estimations Author(s) See Also Examples

Treat a variable as a factor, or interacts a variable with a factor. Values to be dropped/kept from the factor can be easily set. Note that to interact fixed-effects, this function should not be used: instead use directly the syntax `fe1^fe2`

.

1 |

`factor_var` |
A vector (of any type) that will be treated as a factor. You can set references (i.e. exclude values for which to create dummies) with the |

`var` |
A variable of the same length as |

`ref` |
A vector of values to be taken as references from |

`keep` |
A vector of values to be kept from |

`ref2` |
A vector of values to be dropped from |

`keep2` |
A vector of values to be kept from |

`...` |
Not currently used. |

To interact fixed-effects, this function should not be used: instead use directly the syntax `fe1^fe2`

in the fixed-effects part of the formula. Please see the details and examples in the help page of `feols`

.

It returns a matrix with number of rows the length of `factor_var`

. If there is no interacted variable or it is interacted with a numeric variable, the number of columns is equal to the number of cases contained in `factor_var`

minus the reference(s). If the interacted variable is a factor, the number of columns is the number of combined cases between `factor_var`

and `var`

.

`fixest`

estimationsIn `fixest`

estimations, instead of using `i(factor_var, var, ref)`

, you can instead use the following writing `var::factor_var(ref)`

. Note that this way of doing interactions is deprecated and will be removed in the future.

Laurent Berge

`iplot`

to plot interactions or factors created with `i()`

, `feols`

for OLS estimation with multiple fixed-effects.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | ```
#
# Simple illustration
#
x = rep(letters[1:4], 3)[1:10]
y = rep(1:4, c(1, 2, 3, 4))
# interaction
data.frame(x, y, i(x, y, ref = TRUE))
# without interaction
data.frame(x, i(x, "b"))
# you can interact factors too
z = rep(c("e", "f", "g"), c(5, 3, 2))
data.frame(x, z, i(x, z))
# to force a numeric variable to be treated as a factor: use i.
data.frame(x, y, i(x, i.y))
#
# In fixest estimations
#
data(base_did)
# We interact the variable 'period' with the variable 'treat'
est_did = feols(y ~ x1 + i(period, treat, 5) | id + period, base_did)
# => plot only interactions with iplot
iplot(est_did)
# Using i() for factors
est_bis = feols(y ~ x1 + i(period, keep = 3:6) + i(period, treat, 5) | id, base_did)
# we plot the second set of variables created with i()
# => we need to use keep (otherwise only the first one is represented)
iplot(est_bis, keep = "trea")
# => special treatment in etable
etable(est_bis, dict = c("6" = "six"))
#
# Interact two factors
#
# We use the i. prefix to consider week as a factor
data(airquality)
aq = airquality
aq$week = aq$Day %/% 7 + 1
# Interacting Month and week:
res_2F = feols(Ozone ~ Solar.R + i(Month, i.week), aq)
# Same but dropping the 5th Month and 1st week
res_2F_bis = feols(Ozone ~ Solar.R + i(Month, i.week, ref = 5, ref2 = 1), aq)
etable(res_2F, res_2F_bis)
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.