我需要一个函数来创建一个新变量,比如 Y_(i,t) 通过贬低面板数据集中的 X_(i,t) 变量,其中时间 T = 18 和国家,n = 48
I need a function to create a new variable, say Y_(i,t) by demeaning X_(i,t) variable in a panel data set where time, T =18 and countries, n = 48
我是 R 应用程序的新手。我需要一个函数来创建一个新变量,比如 Y_(i,t) 通过贬低面板数据中的 X_(i,t) 变量有时间,T = 18 和国家,n = 48。那就是 Y_(i,t ) = X_(i,t) - x_bar(i)
其中 x_bar(i) 是特定国家/地区的平均值。从 2001 年到 2018 年的相应国家/地区值 X 中减去每个国家/地区的平均值。
下面的数据框是模仿上面实际数据描述的简化版本。
pdat <- data.frame( year = rep(c(2001,2002,2003,2004,2005),5),
code = rep(c('GHY', 'DRF', 'JYU','HYU','POI'),each=5),
X = c(60,70,400,300,15,20,200,150,61,71,401,301,400,300,61,71,401,67,145,678,123,456,456,875,246))
pdat <- plm::pdata.frame(pdat, index=c("code", "year"))
pdat
您已经在使用的包 plm
提供了一个函数来执行您所描述的内容,内部转换(例如,用于固定效应面板模型估计)。
继续你的例子,你可以简单地做:
Within(pdat$X)
我是 R 应用程序的新手。我需要一个函数来创建一个新变量,比如 Y_(i,t) 通过贬低面板数据中的 X_(i,t) 变量有时间,T = 18 和国家,n = 48。那就是 Y_(i,t ) = X_(i,t) - x_bar(i) 其中 x_bar(i) 是特定国家/地区的平均值。从 2001 年到 2018 年的相应国家/地区值 X 中减去每个国家/地区的平均值。
下面的数据框是模仿上面实际数据描述的简化版本。
pdat <- data.frame( year = rep(c(2001,2002,2003,2004,2005),5),
code = rep(c('GHY', 'DRF', 'JYU','HYU','POI'),each=5),
X = c(60,70,400,300,15,20,200,150,61,71,401,301,400,300,61,71,401,67,145,678,123,456,456,875,246))
pdat <- plm::pdata.frame(pdat, index=c("code", "year"))
pdat
您已经在使用的包 plm
提供了一个函数来执行您所描述的内容,内部转换(例如,用于固定效应面板模型估计)。
继续你的例子,你可以简单地做:
Within(pdat$X)