Under Construction
Useful R package for kyobo retirement pension marketing team.
본 패키지는 크게 3가지 성격을 가지고 있습니다.
- 자료 핸들링을 위한 편의함수 :
xdiff_returns()
,mmadjust()
,trim()
등 - 시각화 템플릿을 통한 생산성 증대 :
tmplot()
,ky_colors()
,prop_waffle()
,cormat()
등 - 분석모듈 :
efff()
등
시계열 자료가 있을 때 20, 50, 120일 이동평균선과 함께 플랏팅을 해줍니다. 데이터프레임일때 동작하며 단변수일 경우
library("quantmod")
data <- getSymbols("^ks11", from=Sys.Date()-1000, to = Sys.Date(), auto.assign = F)[,1]
tmplot(data)
다변수일경우 입니다.
data <- getSymbols("^ks11", from=Sys.Date()-1000, to = Sys.Date(), auto.assign = F)
tmplot(data)
data(sample_index)
sample_index
## Fund_1 Fund_2 Fund_3
## 2013-10-23 1048.2 955.7 1046.4
## 2013-10-24 1128.9 924.3 968.7
## 2013-10-25 977.3 1081.2 969.0
## 2013-10-26 1129.8 980.0 1118.1
## 2013-10-27 858.1 1002.0 1033.0
## 2013-10-28 1048.5 905.1 928.7
## 2013-10-29 916.4 927.9 980.2
## 2013-10-30 948.6 887.1 1005.9
## 2013-10-31 885.3 932.0 1041.2
## 2013-11-01 997.3 914.0 1024.0
## 2013-11-02 1137.6 1048.3 1012.6
## 2013-11-03 886.7 958.9 1075.6
## 2013-11-04 1055.3 1091.6 955.2
## 2013-11-05 889.9 960.0 961.2
## 2013-11-06 1008.6 1014.7 967.6
## 2013-11-07 995.1 1016.8 947.5
## 2013-11-08 1054.9 1027.5 984.9
## 2013-11-09 1022.1 905.0 950.7
## 2013-11-10 962.7 1011.5 1046.1
## 2013-11-11 1050.3 1131.9 1081.9
xdiff_returns(sample_index)
## Fund_1 Fund_2 Fund_3
## 2013-10-24 0.07698912 -0.032855499 -0.0742545872
## 2013-10-25 -0.13429002 0.169750081 0.0003096934
## 2013-10-26 0.15604216 -0.093599704 0.1538699690
## 2013-10-27 -0.24048504 0.022448980 -0.0761112602
## 2013-10-28 0.22188556 -0.096706587 -0.1009680542
## 2013-10-29 -0.12598951 0.025190587 0.0554538602
## 2013-10-30 0.03513749 -0.043970255 0.0262191390
## 2013-10-31 -0.06672992 0.050614361 0.0350929516
## 2013-11-01 0.12651079 -0.019313305 -0.0165194007
## 2013-11-02 0.14067984 0.146936543 -0.0111328125
## 2013-11-03 -0.22055204 -0.085280931 0.0622160774
## 2013-11-04 0.19014323 0.138387736 -0.1119375232
## 2013-11-05 -0.15673268 -0.120556981 0.0062814070
## 2013-11-06 0.13338577 0.056979167 0.0066583437
## 2013-11-07 -0.01338489 0.002069577 -0.0207730467
## 2013-11-08 0.06009446 0.010523210 0.0394722955
## 2013-11-09 -0.03109299 -0.119221411 -0.0347243375
## 2013-11-10 -0.05811564 0.117679558 0.1003471127
## 2013-11-11 0.09099408 0.119031142 0.0342223497
수익률을 기반으로 효율적투자선을 그려줍니다.
이를 이용하여 최적수익률포트폴리오, 목표수익률포트폴리오에 대한 분석이 가능합니다.
returns <- xdiff_returns(sample_index, 1)
ef <- efff(returns, rg = 0.01039, rfr = 0.001, plot.only.efff = F)
attr(ef, "poolset") %>% head
## # A tibble: 6 × 6
## Fund_1 Fund_2 Fund_3 Std_Dev Excess_Return sharpe
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 0.1555268 0.2575933 0.5868799 0.04790466 0.006151036 0.1284016
## 2 0.1555298 0.2576578 0.5868125 0.04790466 0.006151645 0.1284143
## 3 0.1555327 0.2577222 0.5867451 0.04790466 0.006152253 0.1284270
## 4 0.1555357 0.2577866 0.5866776 0.04790467 0.006152862 0.1284397
## 5 0.1555387 0.2578511 0.5866102 0.04790467 0.006153471 0.1284524
## 6 0.1555417 0.2579155 0.5865428 0.04790468 0.006154080 0.1284651
최대 최소값을 임의의 값으로 보정시킵니다. 즉 임의값을 초과하는 부분이 보정됩니다.
(x <- c(NA, 1:100*.01, NA))
## [1] NA 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.11 0.12 0.13
## [15] 0.14 0.15 0.16 0.17 0.18 0.19 0.20 0.21 0.22 0.23 0.24 0.25 0.26 0.27
## [29] 0.28 0.29 0.30 0.31 0.32 0.33 0.34 0.35 0.36 0.37 0.38 0.39 0.40 0.41
## [43] 0.42 0.43 0.44 0.45 0.46 0.47 0.48 0.49 0.50 0.51 0.52 0.53 0.54 0.55
## [57] 0.56 0.57 0.58 0.59 0.60 0.61 0.62 0.63 0.64 0.65 0.66 0.67 0.68 0.69
## [71] 0.70 0.71 0.72 0.73 0.74 0.75 0.76 0.77 0.78 0.79 0.80 0.81 0.82 0.83
## [85] 0.84 0.85 0.86 0.87 0.88 0.89 0.90 0.91 0.92 0.93 0.94 0.95 0.96 0.97
## [99] 0.98 0.99 1.00 NA
mmadjust(x, .2, .8)
## [1] NA 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20
## [15] 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.21 0.22 0.23 0.24 0.25 0.26 0.27
## [29] 0.28 0.29 0.30 0.31 0.32 0.33 0.34 0.35 0.36 0.37 0.38 0.39 0.40 0.41
## [43] 0.42 0.43 0.44 0.45 0.46 0.47 0.48 0.49 0.50 0.51 0.52 0.53 0.54 0.55
## [57] 0.56 0.57 0.58 0.59 0.60 0.61 0.62 0.63 0.64 0.65 0.66 0.67 0.68 0.69
## [71] 0.70 0.71 0.72 0.73 0.74 0.75 0.76 0.77 0.78 0.79 0.80 0.80 0.80 0.80
## [85] 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80
## [99] 0.80 0.80 0.80 NA
정규표현식에 기반한 공백문자에 대한 trimming 을 제공합니다.
trim(" Wow! ", method = "leading")
## [1] "Wow! "
trim(" Wow! ", method = "trailing")
## [1] " Wow!"
" Wow! " %>% trim %>% trim(method = "leading")
## [1] "Wow!"
자주사용하는 색에 대한 팔레트함수입니다.
demo.pal <- function(n, border = if (n < 32) "light gray" else NA,
main = paste("color palettes; n=", n),
ch.col = c("rainbow(n, start=.7, end=.1)", "heat.colors(n)",
"terrain.colors(n)", "topo.colors(n)",
"cm.colors(n)", "ky_colors(n)")){
nt <- length(ch.col)
i <- 1:n; j <- n / nt; d <- j/6; dy <- 2*d
plot(i, i+d, type = "n", yaxt = "n", ylab = "", main = main)
for(k in 1:nt){
rect(i-.5, (k-1)*j+ dy, i+.4, k*j, col = eval(parse(text = ch.col[k])), border = border)
text(2*j, k * j + dy/4, ch.col[k])
}
}
demo.pal(n = 16)
비율에 대한 와플차트를 제공합니다.
x <- c("Apple" = 1, "Banana" = 2, "Watermelon" = 3)
prop_waffle(x, 1, 4, size = 1)
prop_waffle(x, 1, 4, size = 1, colors = ky_colors(3, random = T),
title = "Using ky_colors() Palettes")
상관행렬도를 시각화하며 psych::pairs.panels()
에 기반합니다.
cormat(cars)
github 원격저장소에 본 패키지 프로젝트가 담겨 있습니다.
devtools package 의 install_github()
함수를 통해 설치 가능합니다.
아래의 코드를 실행하세요.
devtools::install_github("lovetoken/kyoboLT")