Subsets a fixest_multi object using different keys.
Usage
# S3 method for class 'fixest_multi'
x[i, sample, lhs, rhs, fixef, iv, I, reorder = TRUE, drop = FALSE]Arguments
- x
A
fixest_multiobject, obtained from afixestestimation leading to multiple results.- i
An integer vector. Represents the estimations to extract.
- sample
An integer vector, a logical scalar, or a character vector. It represents the
sampleidentifiers for which the results should be extracted. Only valid when thefixestestimation was a split sample. You can use.Nto refer to the last element. If logical, all elements are selected in both cases, butFALSEleadssampleto become the rightmost key (just try it out).- lhs
An integer vector, a logical scalar, or a character vector. It represents the left-hand-sides identifiers for which the results should be extracted. Only valid when the
fixestestimation contained multiple left-hand-sides. You can use.Nto refer to the last element. If logical, all elements are selected in both cases, butFALSEleadslhsto become the rightmost key (just try it out).- rhs
An integer vector or a logical scalar. It represents the right-hand-sides identifiers for which the results should be extracted. Only valid when the
fixestestimation contained multiple right-hand-sides. You can use.Nto refer to the last element. If logical, all elements are selected in both cases, butFALSEleadsrhsto become the rightmost key (just try it out).- fixef
An integer vector or a logical scalar. It represents the fixed-effects identifiers for which the results should be extracted. Only valid when the
fixestestimation contained fixed-effects in a stepwise fashion. You can use.Nto refer to the last element. If logical, all elements are selected in both cases, butFALSEleadsfixefto become the rightmost key (just try it out).- iv
An integer vector or a logical scalar. It represent the stages of the IV. Note that the length can be greater than 2 when there are multiple endogenous regressors (the first stage corresponding to multiple estimations). Note that the order of the stages depends on the
stageargument fromsummary.fixest. If logical, all elements are selected in both cases, butFALSEleadsivto become the rightmost key (just try it out).- I
An integer vector. Represents the root element to extract.
- reorder
Logical, default is
TRUE. Indicates whether reordering of the results should be performed depending on the user input.- drop
Logical, default is
FALSE. If the result contains only one estimation, then ifdrop = TRUEit will be transformed into afixestobject (instead offixest_multi). Its default value can be modified with the functionsetFixest_multi.
Value
It returns a fixest_multi object. If there is only one estimation left in the object, then
the result is simplified into a fixest object only with drop = TRUE.
Details
The order with we we use the keys matter. Every time a key sample, lhs, rhs,
fixef or iv is used, a reordering is performed to consider the leftmost-side key
to be the new root.
Use logical keys to easily reorder. For example, say the object res contains a
multiple estimation with multiple left-hand-sides, right-hand-sides and fixed-effects.
By default the results are ordered as follows: lhs, fixef, rhs.
If you use res[lhs = FALSE], then the new order is: fixef, rhs, lhs.
With res[rhs = TRUE, lhs = FALSE] it becomes: rhs, fixef, lhs. In both cases
you keep all estimations.
See also
The main fixest estimation functions: feols, fepois,
fenegbin, feglm, feNmlm. Tools for mutliple fixest
estimations: summary.fixest_multi, print.fixest_multi, as.list.fixest_multi,
sub-sub-.fixest_multi, sub-.fixest_multi.
Examples
# Estimation with multiple samples/LHS/RHS
aq = airquality[airquality$Month %in% 5:6, ]
est_split = feols(c(Ozone, Solar.R) ~ sw(poly(Wind, 2), poly(Temp, 2)),
aq, split = ~ Month)
# By default: sample is the root
etable(est_split)
#> est_split.1 est_split.2 est_split.3
#> Sample (Month) 5 5 5
#> Dependent Var.: Ozone Ozone Solar.R
#>
#> Constant 26.06*** (4.090) 41.22*** (6.910) 182.7*** (23.38)
#> poly(Wind)1 -89.96* (35.56) -142.3 (205.4)
#> poly(Wind)2 66.46 (39.66) -177.1 (233.1)
#> poly(Temp)1 215.9** (67.18)
#> poly(Temp)2 92.23 (63.43)
#> _______________ ________________ ________________ ________________
#> S.E. type IID IID IID
#> Observations 26 26 27
#> R2 0.23366 0.36534 0.07374
#> Adj. R2 0.16702 0.31015 -0.00345
#>
#> est_split.4 est_split.5 est_split.6
#> Sample (Month) 5 6 6
#> Dependent Var.: Solar.R Ozone Ozone
#>
#> Constant 191.6*** (37.62) 25.43* (7.310) 30.73** (6.188)
#> poly(Wind)1 91.24 (82.49)
#> poly(Wind)2 -43.18 (65.91)
#> poly(Temp)1 124.1 (373.5) -6.996 (59.32)
#> poly(Temp)2 -484.8 (322.7) 121.6* (47.13)
#> _______________ ________________ ______________ _______________
#> S.E. type IID IID IID
#> Observations 27 9 9
#> R2 0.27498 0.18587 0.73781
#> Adj. R2 0.21456 -0.08550 0.65041
#>
#> est_split.7 est_split.8
#> Sample (Month) 6 6
#> Dependent Var.: Solar.R Solar.R
#>
#> Constant 196.5*** (16.70) 161.7*** (37.25)
#> poly(Wind)1 233.8. (129.0)
#> poly(Wind)2 -51.86 (111.4)
#> poly(Temp)1 313.2 (344.5)
#> poly(Temp)2 78.76 (214.4)
#> _______________ ________________ ________________
#> S.E. type IID IID
#> Observations 30 30
#> R2 0.12942 0.16719
#> Adj. R2 0.06493 0.10550
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Let's reorder, by considering lhs the root
etable(est_split[lhs = 1:.N])
#> est_split[lhs..1 est_split[lhs..2 est_split[l..3
#> Sample (Month) 5 5 6
#> Dependent Var.: Ozone Ozone Ozone
#>
#> Constant 26.06*** (4.090) 41.22*** (6.910) 25.43* (7.310)
#> poly(Wind)1 -89.96* (35.56) 91.24 (82.49)
#> poly(Wind)2 66.46 (39.66) -43.18 (65.91)
#> poly(Temp)1 215.9** (67.18)
#> poly(Temp)2 92.23 (63.43)
#> _______________ ________________ ________________ ______________
#> S.E. type IID IID IID
#> Observations 26 26 9
#> R2 0.23366 0.36534 0.18587
#> Adj. R2 0.16702 0.31015 -0.08550
#>
#> est_split[lh..4 est_split[lhs..5 est_split[lhs..6
#> Sample (Month) 6 5 5
#> Dependent Var.: Ozone Solar.R Solar.R
#>
#> Constant 30.73** (6.188) 182.7*** (23.38) 191.6*** (37.62)
#> poly(Wind)1 -142.3 (205.4)
#> poly(Wind)2 -177.1 (233.1)
#> poly(Temp)1 -6.996 (59.32) 124.1 (373.5)
#> poly(Temp)2 121.6* (47.13) -484.8 (322.7)
#> _______________ _______________ ________________ ________________
#> S.E. type IID IID IID
#> Observations 9 27 27
#> R2 0.73781 0.07374 0.27498
#> Adj. R2 0.65041 -0.00345 0.21456
#>
#> est_split[lhs..7 est_split[lhs..8
#> Sample (Month) 6 6
#> Dependent Var.: Solar.R Solar.R
#>
#> Constant 196.5*** (16.70) 161.7*** (37.25)
#> poly(Wind)1 233.8. (129.0)
#> poly(Wind)2 -51.86 (111.4)
#> poly(Temp)1 313.2 (344.5)
#> poly(Temp)2 78.76 (214.4)
#> _______________ ________________ ________________
#> S.E. type IID IID
#> Observations 30 30
#> R2 0.12942 0.16719
#> Adj. R2 0.06493 0.10550
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Selecting only one LHS and RHS
etable(est_split[lhs = "Ozone", rhs = 1])
#> est_split[lhs..1 est_split[l..2
#> Sample (Month) 5 6
#> Dependent Var.: Ozone Ozone
#>
#> Constant 26.06*** (4.090) 25.43* (7.310)
#> poly(Wind)1 -89.96* (35.56) 91.24 (82.49)
#> poly(Wind)2 66.46 (39.66) -43.18 (65.91)
#> _______________ ________________ ______________
#> S.E. type IID IID
#> Observations 26 9
#> R2 0.23366 0.18587
#> Adj. R2 0.16702 -0.08550
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Taking the first root (here sample = 5)
etable(est_split[I = 1])
#> est_split[I =..1 est_split[I =..2 est_split[I =..3
#> Sample (Month) 5 5 5
#> Dependent Var.: Ozone Ozone Solar.R
#>
#> Constant 26.06*** (4.090) 41.22*** (6.910) 182.7*** (23.38)
#> poly(Wind)1 -89.96* (35.56) -142.3 (205.4)
#> poly(Wind)2 66.46 (39.66) -177.1 (233.1)
#> poly(Temp)1 215.9** (67.18)
#> poly(Temp)2 92.23 (63.43)
#> _______________ ________________ ________________ ________________
#> S.E. type IID IID IID
#> Observations 26 26 27
#> R2 0.23366 0.36534 0.07374
#> Adj. R2 0.16702 0.31015 -0.00345
#>
#> est_split[I =..4
#> Sample (Month) 5
#> Dependent Var.: Solar.R
#>
#> Constant 191.6*** (37.62)
#> poly(Wind)1
#> poly(Wind)2
#> poly(Temp)1 124.1 (373.5)
#> poly(Temp)2 -484.8 (322.7)
#> _______________ ________________
#> S.E. type IID
#> Observations 27
#> R2 0.27498
#> Adj. R2 0.21456
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# The first and last estimations
etable(est_split[i = c(1, .N)])
#> est_split[i =..1 est_split[i =..2
#> Sample (Month) 5 6
#> Dependent Var.: Ozone Solar.R
#>
#> Constant 26.06*** (4.090) 161.7*** (37.25)
#> poly(Wind)1 -89.96* (35.56)
#> poly(Wind)2 66.46 (39.66)
#> poly(Temp)1 313.2 (344.5)
#> poly(Temp)2 78.76 (214.4)
#> _______________ ________________ ________________
#> S.E. type IID IID
#> Observations 26 30
#> R2 0.23366 0.16719
#> Adj. R2 0.16702 0.10550
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1