【问题标题】:Importing excel balance sheet into R将excel资产负债表导入R
【发布时间】:2017-12-12 16:05:04
【问题描述】:

我正在尝试将资产负债表的 excel 电子表格导入 R,我正在尝试导入它,以便它看起来或多或少像现在的资产负债表。

Assets                2011,    2010,   2009
Non current assets    32.322   3.111   
intangible assets     12,222

类似的东西。我也在尝试导入第二个选项卡,这也是一个不同的资产负债表。我的想法是我可能会有 50 个或更多的资产负债表。这对分析会不会低效?

我只对每个资产负债表中的几个相同变量感兴趣(想想,流动资产,所有年份的非流动资产等)是否可以从 Excel 中只导入特定的行和列表?

例如只导入;

A) Non current assets   32.322      3.111       322
B) Current assets   345     543     2.233

等等? - 行名没有改变,所以我可以使用函数来做到这一点吗?

【问题讨论】:

  • 这个link 可能会有所帮助。一旦您在 R 对象中拥有数据,您就可以只提取感兴趣的行。注意:请参阅该帖子中的更新答案。

标签: r import


【解决方案1】:

看看 quantmod!

library(quantmod)
library(xlsx)
getFin("GS")
gs_BS <- GS.f$BS$A
str(gs_BS)

 #num [1:42, 1:4] 106533 NA 113003 71883 NA ...
 #- attr(*, "dimnames")=List of 2
 # ..$ : chr [1:42] "Cash & Equivalents" "Short Term Investments" "Cash and Short Term Investments" "Accounts Receivable - Trade, Net" ...
 # ..$ : chr [1:4] "2015-12-31" "2014-12-31" "2013-12-31" "2012-12-31"
 #- attr(*, "col_desc")= chr [1:4] "As of 2015-12-31" "As of 2014-12-31" "As of 2013-12-31" "As of 2012-12-31"

transposed <- t(gs_BS)
write.xlsx(transposed, "C:\\Users\\your_path_here\\Desktop\\bal_sheet.xlsx", row.names=FALSE)
transp <- read.xlsx("C:\\Users\\your_path_here\\Desktop\\bal_sheet.xlsx" , sheetName="Sheet1")
transp$year <- c("2015","2014","2013","2012")")

这也不错。

require(quantmod)

equityList <- read.csv("EquityList.csv", header = FALSE, stringsAsFactors = FALSE)
names(equityList) <- c ("Ticker")

for (i in 1 : length(equityList$Ticker)) {   
        temp<-getFinancials(equityList$Ticker[i],src="google",auto.assign=FALSE)
        write.csv(temp$IS$A,paste(equityList$Ticker[i],"_Income_Statement(Annual).csv",sep=""))
        write.csv(temp$IS$A,paste(equityList$Ticker[i],"_Balance_Sheet(Annual).csv",sep=""))
        write.csv(temp$IS$A,paste(equityList$Ticker[i],"_Cash_Flow(Annual).csv",sep=""))
        write.csv(temp$IS$A,paste(equityList$Ticker[i],"_Income_Statement(Quarterly).csv",sep=""))
        write.csv(temp$IS$A,paste(equityList$Ticker[i],"_Balance_Sheet(Quaterly).csv",sep=""))
        write.csv(temp$IS$A,paste(equityList$Ticker[i],"_Cash_Flow(Quaterly).csv",sep=""))
}

另外,看看这个。

https://msperlin.github.io/pafdR/importingInternet.html

还有其他方法可以做非常相似的事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-20
    • 1970-01-01
    • 2022-11-13
    • 1970-01-01
    • 2016-11-30
    • 2015-09-25
    相关资源
    最近更新 更多