Skip to content

etwfe

Extended Two-Way Fixed Effects

v0.6.2 · Mar 22, 2026 · MIT + file LICENSE

Description

Convenience functions for implementing extended two-way fixed effect regressions a la Wooldridge (2023, 2025) <doi:10.1093/ectj/utad016>, <doi:10.1007/s00181-025-02807-z>.

Downloads

CRAN

923

Last 30 days

3742nd

2.7K

Last 90 days

7.5K

Last year

Trend: -0.3% (30d vs prior 30d)

r2u CRAN

4

Last 30 days

33

Last 90 days

126

Last year

Trend: -55.6% (30d vs prior 30d)

autoCRAN

2

Last 7 days

13

Last 30 days

0

All-time

autoCRAN-only: this name is served only by autoCRAN, so the count is exact.

CRAN Check Status

13 OK
Show all 13 flavors
Flavor Status
r-devel-linux-x86_64-debian-clang OK
r-devel-linux-x86_64-debian-gcc OK
r-devel-linux-x86_64-fedora-clang OK
r-devel-linux-x86_64-fedora-gcc OK
r-devel-windows-x86_64 OK
r-oldrel-macos-arm64 OK
r-oldrel-macos-x86_64 OK
r-oldrel-windows-x86_64 OK
r-patched-linux-x86_64 OK
r-release-linux-x86_64 OK
r-release-macos-arm64 OK
r-release-macos-x86_64 OK
r-release-windows-x86_64 OK

Check History

OK 13 OK · 0 NOTE · 0 WARNING · 0 ERROR · 0 FAILURE Jun 9, 2026
ERROR 12 OK · 0 NOTE · 0 WARNING · 1 ERROR · 0 FAILURE Jun 8, 2026
ERROR r-devel-linux-x86_64-debian-gcc

tests

Running ‘tinytest.R’ [7s/9s]
Running the tests in ‘tests/tinytest.R’ failed.
Complete output:
  > 
  > if ( requireNamespace("tinytest", quietly=TRUE) ){
  +   tinytest::test_package("etwfe")
  + }
  
  test_baker.R..................    0 tests    
 
...[truncated]...
  test_baker.R..................    5 tests OK 7.6s
  Error in find.package(package, lib.loc, verbose = verbose) : 
    there is no package called 'did'
  Calls: <Anonymous> ... lapply -> FUN -> eval -> eval -> data -> find.package
  Execution halted
OK 14 OK · 0 NOTE · 0 WARNING · 0 ERROR · 0 FAILURE Mar 28, 2026
ERROR 10 OK · 0 NOTE · 0 WARNING · 4 ERROR · 0 FAILURE Mar 18, 2026
ERROR r-devel-linux-x86_64-debian-gcc

tests

Running ‘tinytest.R’ [74s/95s]
Running the tests in ‘tests/tinytest.R’ failed.
Complete output:
  > 
  > if ( requireNamespace("tinytest", quietly=TRUE) ){
  +   tinytest::test_package("etwfe")
  + }
  
  test_baker.R..................    0 tests    
...[truncated]...
iff| Attributes: < Names: 1 string mismatch >
  ----- FAILED[attr]: test_etwfe.R<478--478>
   call| expect_equal(fixest::coeftable(m3p), m3p_known)
   diff| Attributes: < Names: 1 string mismatch >
  Error: 6 out of 71 tests failed
  Execution halted
ERROR r-devel-linux-x86_64-fedora-clang

tests

Running ‘tinytest.R’ [196s/226s]
Running the tests in ‘tests/tinytest.R’ failed.
Complete output:
  > 
  > if ( requireNamespace("tinytest", quietly=TRUE) ){
  +   tinytest::test_package("etwfe")
  + }
  
  test_baker.R..................    0 tests  
...[truncated]...
iff| Attributes: < Names: 1 string mismatch >
  ----- FAILED[attr]: test_etwfe.R<478--478>
   call| expect_equal(fixest::coeftable(m3p), m3p_known)
   diff| Attributes: < Names: 1 string mismatch >
  Error: 6 out of 71 tests failed
  Execution halted
ERROR r-devel-linux-x86_64-fedora-gcc

tests

Running ‘tinytest.R’ [209s/560s]
Running the tests in ‘tests/tinytest.R’ failed.
Complete output:
  > 
  > if ( requireNamespace("tinytest", quietly=TRUE) ){
  +   tinytest::test_package("etwfe")
  + }
  
  test_baker.R..................    0 tests  
...[truncated]...
iff| Attributes: < Names: 1 string mismatch >
  ----- FAILED[attr]: test_etwfe.R<478--478>
   call| expect_equal(fixest::coeftable(m3p), m3p_known)
   diff| Attributes: < Names: 1 string mismatch >
  Error: 6 out of 71 tests failed
  Execution halted
ERROR r-oldrel-macos-x86_64

tests

Running ‘tinytest.R’ [81s/178s]
Running the tests in ‘tests/tinytest.R’ failed.
Complete output:
  > 
  > if ( requireNamespace("tinytest", quietly=TRUE) ){
  +   tinytest::test_package("etwfe")
  + }
  
  test_baker.R..................    0 tests   
...[truncated]...
iff| Attributes: < Names: 1 string mismatch >
  ----- FAILED[attr]: test_etwfe.R<478--478>
   call| expect_equal(fixest::coeftable(m3p), m3p_known)
   diff| Attributes: < Names: 1 string mismatch >
  Error: 6 out of 71 tests failed
  Execution halted
OK 14 OK · 0 NOTE · 0 WARNING · 0 ERROR · 0 FAILURE Mar 10, 2026

Code

Structure

Lines of code

2,398

Files

23

Compiled share

0%

Has compiled src

No

Language breakdown

R 998 (41.6%)Tests 4 (0.2%)Docs 707 (29.5%)Vignettes 689 (28.7%)

API

Exported functions

2

Internal functions

1

Testing & CI

Has tests

Yes

Test-to-code ratio

0.00

testthat edition

CI present

No

CI type

[]

PR gated

No

Docs

Return-value doc rate

100%

\dontrun example ratio

100%

Roxygen coverage

100%

Has pkgdown

No

NEWS present

Yes

Health & Security signals

Informational signals; not verdicts.

on.exit coverage

100%

Unsafe pattern score

0

Dep constraint coverage

66.7%

Secret pattern count

0

Bundled 3rd-party code

2 items

Portability & License

Min R version

System requirements

C++ standard

License

MIT + file LICENSE

License flags

SPDX valid, OSI approved

History

Versions

13

First release

2022-12-14

Latest release

2026-03-23

Avg cadence

46 days

Cold removal rate

Dep drift

2

LOC over versions

v0.1.0: 778 LOCv0.2.0: 881 LOCv0.3.0: 1,619 LOCv0.3.1: 1,623 LOCv0.3.2: 1,662 LOCv0.3.3: 1,662 LOCv0.3.4: 1,662 LOCv0.3.5: 1,662 LOCv0.4.0: 1,706 LOCv0.5.0: 2,221 LOCv0.6.0: 2,397 LOCv0.6.1: 2,398 LOCv0.6.2: 2,398 LOC

Per-file churn detail lives in the source pipeline: https://github.com/r-observatory/cran-code-metrics.

Reverse Dependencies (1)

imports

Dependency Network

Dependencies Reverse dependencies fixest data.table Formula marginaleffects tinyplot selectTWFE etwfe

Version History

14 tracked
updated 0.6.2 ← 0.6.1 diff Mar 23, 2026
updated 0.6.1 ← 0.6.0 diff Mar 16, 2026
new 0.6.0 Mar 10, 2026
updated 0.6.0 ← 0.5.0 diff Sep 2, 2025
updated 0.5.0 ← 0.4.0 diff Dec 15, 2024
updated 0.4.0 ← 0.3.5 diff Feb 26, 2024
updated 0.3.5 ← 0.3.4 diff Nov 30, 2023
updated 0.3.4 ← 0.3.3 diff Jun 19, 2023
updated 0.3.3 ← 0.3.2 diff May 27, 2023
updated 0.3.2 ← 0.3.1 diff May 1, 2023
updated 0.3.1 ← 0.3.0 diff Feb 27, 2023
updated 0.3.0 ← 0.2.0 diff Feb 7, 2023
updated 0.2.0 ← 0.1.0 diff Jan 10, 2023
new 0.1.0 Dec 13, 2022