R 如何将中值作为自变量纳入回归?

R 如何将中值作为自变量纳入回归?,r,regression,R,Regression,我想对x1上的y和x2的中值进行回归。 我将以下代码与包plm一起使用: Result <- plm(y ~ x1 + median(x2,na.rm=T),data = Panel[which(!is.na(Panel$Firms)),], model = "random",effect = "time",index = c("Firms", "Time")) Result给出错误是因为它们的长度不同,所以我认为如果不使用中值的一些变换,就无法实现这一点。假

我想对
x1
上的
y
x2
的中值进行回归。 我将以下代码与包
plm
一起使用:

Result <- plm(y ~ x1 + median(x2,na.rm=T),data = Panel[which(!is.na(Panel$Firms)),],
              model = "random",effect = "time",index = c("Firms", "Time"))

Result给出错误是因为它们的长度不同,所以我认为如果不使用中值的一些变换,就无法实现这一点。假设您对公司特定的中位数感兴趣,使用
dplyr
包的示例如下:

library(dplyr)
panel <- panel %>% 
group_by(Firms) %>%
mutate(median_x2 = median(x2))
库(dplyr)
面板%
集团单位(公司)%>%
变异(中位数_x2=中位数(x2))

然后,您应该能够使用新生成的变量运行模型。

在运行回归之前,将此变量添加到data.frame中。但也要意识到,向数据中添加常数不会改变回归的任何内容-截距中已经有一个常数。可能会考虑包含一个
偏移量
——不确定您使用的是哪个
plm
实现,以及它是否允许使用
偏移量
术语。很抱歉,混淆了,我使用的是行业中值。所以这不是一个常数。如果行业中位数是指每个时间点所有公司的中位数,请使用
group\u by(time)
。非常感谢。我使用
分组依据(行业、时间)