-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlab10.R
More file actions
52 lines (50 loc) · 1.34 KB
/
lab10.R
File metadata and controls
52 lines (50 loc) · 1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
library(quantmod)
sss=stockSymbols()
dfr=data.frame(sss$Symbol,sss$Industry)
names(dfr)=c("ticker","industry")
television=subset(dfr,ticker=="DIS",)
tv_industry=as.vector(television$industry)
dfrtick=subset(dfr,industry==tv_industry,)
tvtickers=as.vector(dfrtick$ticker)
rundata=function(t){
tryCatch(
{
fin=getFinancials(t,auto.assign = FALSE)
sumOfCapital=0.10
data=rep(0,6)
data[1]=fin$IS$A["Operating Income",]
data[2]=fin$BS$A["Total Common Shares Outstanding",]
data[3]=fin$BS$A["Total Assets",]
data[4]=fin$BS$A["Goodwill, Net",]
data[5]=fin$BS$A["Total Liabilities",]
data[6]=getQuote(t)$Last
rap=data[3]+data[4]+data[5]
rapPerShare=rap/data[2]
EPV=data[1]/sumOfCapital
EPVPerShare=EPV/data[2]
price=data[6]
data[is.na(data)]=0
return(c(price,rapPerShare,EPVPerShare))
},
error=function(x){
return(c(NA,NA,NA))
}
)
}
mm=mapply(rundata,tvtickers)
mm[is.na(mm)]=0
a=as.data.frame(table(tvtickers))
for(i in 1:sum(table(tvtickers))){
if(mm[2,]>mm[3,]){
return(mm[i]+"Above")
}
else{
return(mm[i]+"below")
}
}
resdf = data.frame(tvtickers,mm[1,],mm[2,],mm[3,])
names(resdf) = c("tick","price","rap","EPV")
head(resdf[order(-resdf$price),],7)
head(resdf[order(-resdf$rap),],7)
head(resdf[order(-resdf$EPV),],7)
resdf$rank = NA