Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #einhorn_13F_2016.R
- # Holdings of D. Einhorns Hedge Fund
- # Metadata / Background Info
- #https://www.sec.gov/Archives/edgar/data/1079114/000107911416000025/xslForm13F_X01/primary_doc.xml
- library(ggplot2)
- library(rvest)
- library(stringi)
- library(purrr)
- library(tidyr)
- library(dplyr)
- # data
- # read in HTML:
- html_url <- "https://www.sec.gov/Archives/edgar/data/1079114/000107911416000025/xslForm13F_X01/Greenlight_13FXML_06302016.xml"
- html_dat <- read_html(html_url)
- #find the right table in HTML DOM
- html_dat <- html_table(html_dat, header = TRUE, fill=TRUE)[[4]]
- glimpse(html_dat)
- # parse messed-up table header
- einhorn_col <- map2_chr(html_dat[1,],html_dat[2,], paste)
- einhorn <- html_dat
- colnames(einhorn) <- make.names(stri_trim(stringi::stri_trans_tolower(paste0( einhorn_col, sep=""))))
- einhorn <- einhorn[3:nrow(einhorn),]
- # there are 2 important numeric columns
- einhorn[, "value..x.1000."] <- as.numeric(gsub(",", "",einhorn[, "value..x.1000."]))
- einhorn[, "shrs.or.prn.amt"] <- as.numeric(gsub(",", "", einhorn[, "shrs.or.prn.amt"]))
- # most important holdings by value
- einhorn %>%
- group_by(name.of.issuer) %>%
- summarise(sum_value=sum(value..x.1000.),sum_shares=sum(shrs.or.prn.amt)) %>%
- arrange(desc(sum_value))
- # show some company names
- companies <- unique(einhorn$name.of.issuer)
- sample(companies, 6)
- colnames(einhorn)
- [1] "name.of.issuer" "title.of.class" "cusip"
- [4] "value..x.1000." "shrs.or.prn.amt" "sh..prn"
- [7] "put..call" "investment.discretion" "other.manager"
- [10] "voting.authority.sole" "voting.authority.shared" "voting.authority.none"
- company CIK SIC state state.inc FY.end street.address city.state
- 1 GOOGLE INC. 0001288776 7370 CA DE 1231 1600 AMPHITHEATRE PARKWAY MOUNTAIN VIEW CA 94043
- sample(companies, 6)
- [1] "TAKE-TWO INTERACTIVE SOFTWAR" "TERRAFORM PWR INC"
- [3] "APPLE INC" "VOYA FINL INC"
- [5] "AERCAP HOLDINGS NV" "PERRIGO CO PLC
- finreportr::CompanyInfo("TERRAFORM PWR INC")
- Error in open.connection(x, "rb") : HTTP error 400.
- Calls: <Anonymous> -> <Anonymous> -> read_html.default
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement