合并工作簿中的 Excel 个工作表以制作面板数据 table 以时间和公司作为索引
Merging Excel sheets in a workbook to make panel data table with time and firms as indices
我想为 R 中的面板数据回归创建面板数据 table。我有一个工作簿,每个 sheet 包含单个公司的变量(总共 5 sheets所以 5 家公司)。每个公司的变量都是相同的。频率是每天。我想要一个以公司和时间为指数的单一面板数据 table,这样我就可以对每个公司的变量进行年度平均并进行面板数据回归。我已经运行以下代码:
sheets<- c("BOB", "RIL", "GAIL", "ITC", "MM")for (x in 1:5) {df <- bind_rows(df, read.xlsx(path, sheet=sheets[x] ), .id= "Firm")}
但上面的代码只采用第一个 sheet,创建 Firms 列,其值始终为 1,日期列为未知数字。我还尝试了以下代码:
df <- bind_rows(read.xlsx(path, sheets[x]), .id= "Firm")
但它 returns 结果相同。似乎代码只能访问工作簿中的第一个 sheet。请提出解决此问题的方法。以下是工作簿的 link:workbook
这使用了 readxl
包。 xlsx
包不喜欢您文件中的某些内容并抛出错误。
library("readxl")
sheets<- c("BOB", "RIL", "GAIL", "ITC", "MM")
df <- NULL
for (sheet in sheets){
tmp <- read_excel(path, sheet=paste0(sheet, " IS Equity"))
tmp$firm <- rep(sheet, nrow(tmp))
df <- rbind(df, tmp)
}
我想为 R 中的面板数据回归创建面板数据 table。我有一个工作簿,每个 sheet 包含单个公司的变量(总共 5 sheets所以 5 家公司)。每个公司的变量都是相同的。频率是每天。我想要一个以公司和时间为指数的单一面板数据 table,这样我就可以对每个公司的变量进行年度平均并进行面板数据回归。我已经运行以下代码:
sheets<- c("BOB", "RIL", "GAIL", "ITC", "MM")for (x in 1:5) {df <- bind_rows(df, read.xlsx(path, sheet=sheets[x] ), .id= "Firm")}
但上面的代码只采用第一个 sheet,创建 Firms 列,其值始终为 1,日期列为未知数字。我还尝试了以下代码:
df <- bind_rows(read.xlsx(path, sheets[x]), .id= "Firm")
但它 returns 结果相同。似乎代码只能访问工作簿中的第一个 sheet。请提出解决此问题的方法。以下是工作簿的 link:workbook
这使用了 readxl
包。 xlsx
包不喜欢您文件中的某些内容并抛出错误。
library("readxl")
sheets<- c("BOB", "RIL", "GAIL", "ITC", "MM")
df <- NULL
for (sheet in sheets){
tmp <- read_excel(path, sheet=paste0(sheet, " IS Equity"))
tmp$firm <- rep(sheet, nrow(tmp))
df <- rbind(df, tmp)
}