R:使用felm()中的矩阵抑制表示法

R:使用felm()中的矩阵抑制表示法,r,R,使用felm()-package(lfe) 我有10个变量,希望自己和互动的影响 但是,在构建可复制的数据帧时,我能够让脚本按如下方式运行: library(lfe) ## build data frame set.seed(1) data <- data.frame( x1 = rnorm(1:10000),x2=rnorm(1:10000),x3=rnorm(1:10000),x4=rnorm(1:10000),x5=rnorm(1:10000), z1 = rnorm(1:

使用felm()-package(lfe)

我有10个变量,希望自己和互动的影响

但是,在构建可复制的数据帧时,我能够让脚本按如下方式运行:

library(lfe)

## build data frame
set.seed(1)
data <- data.frame(
  x1 = rnorm(1:10000),x2=rnorm(1:10000),x3=rnorm(1:10000),x4=rnorm(1:10000),x5=rnorm(1:10000),
  z1 = rnorm(1:10000),z2=rnorm(1:10000),z3=rnorm(1:10000),z4=rnorm(1:10000),z5=rnorm(1:10000),
  f1 = as.factor(sample(c("yes","no","maybe"),10000,replace=TRUE)),
  f2 = as.factor(sample(c("high","med","low"),10000,replace=TRUE)),
  y  = rnorm(1:10000))

## build matrices
x <- select(data,starts_with("x"))
z <- select(data,starts_with("z"))

## run model
model <- felm(y ~ as.matrix(x)*as.matrix(z) | factor(f1)+factor(f2) | 0 | f1, data=data)
summary(model) 

select()
生成的对象在所需的维度(5 x 73412)中是正确的

使用此结构,我发现有效的解决方案是
data.matrix()

##构建矩阵

我还试图直接使用“.”符号:
felm(price~base$.*new$.|…)
导致错误:
解析错误(text=x,keep.source=FALSE)::1:15:意外的数值常量1:~base$0^
new   <- select(snow,starts_with("new"))  ##results in object 5x73,412
base  <- select(snow,starts_with("base")) ##results in object 5x73,412

model <- felm(price ~ as.matrix(new)*as.matrix(base) | factor(ID) | 0 | ID, data=snow)
## build matrices
x <- select(data,starts_with("x"))
z <- select(data,starts_with("z"))

## run model using matrix notation
model <- felm(y ~ data.matrix(x)*data.matrix(z) | factor(f1)+factor(f2) | 0 | f1, data=data)