我试图从矩阵创建一个系数图(https://lrberge.github.io/fixest/reference/coefplot.html).(这是为了显示交互作用项的线性组合,请参见下面的示例代码.文档-见上面的链接-表明这应该是可能的:对象可以是系数表的矩阵.或者,我应该能够提供一个估计向量,加上置信区间信息,以创建coefplot.我没能做到.

我try 了以下几种方法:

##packages and libraries required: 
##fixest
##biostat3

library(biostat3)
library(fixest)

##load example data
data(base_did)
base_inter = base_did

##Run simple regression with interactions
A <- lm(y ~factor(period)*treat, base_inter)

##Create linear combinations
C<-lincom(A,c("treat","treat+factor(period)2:treat","treat+factor(period)3:treat", "treat+factor(period)10:treat"))

##Transform to matrix
T<-as.matrix(C)

##Remove unnecessary information and dimension names
T<-T[,1:3]
dimnames(T) <- NULL

##run coefplot from fixest
fixest::coefplot(T[,1],ci_low=T[,2],ci_high=T[,3])

我收到一个错误:

Error in data.frame(estimate = estimate, ci_low = ci_low, ci_high = ci_high,  : 
  arguments imply differing number of rows: 4, 0

我不明白这一点,因为矩阵T有三列四行,所以维度应该是正确的.

    [,1]       [,2]       [,3]     
[1,] -1.061001  -2.99068   0.8686775
[2,] -0.7100586 -2.639737  1.21962  
[3,] 1.458543   -0.4711357 3.388222 
[4,] 7.90124    5.971561   9.830918 

推荐答案

虽然您的矩阵CT看起来像由数字组成的矩阵,但它们实际上是由list组成的矩阵.因此,T[, 1],...也是list.要解决您的问题,您可以在将列传递给fixest::coefplot之前使用applyunlist列:

library(biostat3)
library(fixest)

T <- apply(T, 2, unlist)

## run coefplot from fixest
fixest::coefplot(
  T[, 1],
  ci_low = T[, 2],
  ci_high = T[, 3]
)

R相关问答推荐

将模拟变量乘以多个观测结果中的模拟变量

使用预定值列表将模拟数量(n)替换为rnorm()

使用tidyverse方法绑定行并从一组管道列表执行左连接

如何从当前行上方找到符合特定条件的最接近值?

如何在ggplot中标记qqplot上的点?

如何计算多个日期是否在一个日期范围内

如何在R中描绘#符号?

根据现有列的名称和字符串的存在进行变异以创建多个新列

打印XTS对象

如何在ggplot2中绘制具有特定 colored颜色 的连续色轮

R如何将列名转换为更好的年和月格式

停止ggplot将多行减少到一行

'使用`purrr::pwalk`从嵌套的嵌套框架中的列表列保存ggplots时出现未使用的参数错误

SHILINY中DT列的条件着色

如何在shiny 的应用程序 map 视图宣传单中可视化单点

使用&Fill&Quot;在gglot中创建 colored颜色 渐变

如何在不使用SHINY的情况下将下拉滤镜列表添加到ggploy?

在R中,有没有什么方法可以根据一列中的多个值来过滤行?

如何根据顺序/序列从数据框中排除值

残差与拟合图上标记点的故障排除