라벨이 R인 게시물 표시

주식 자동매매 시스템

파이썬을 이용한 주식 자동매매 시스템

이미지
파이썬을 이용한 주식 자동매매 시스템 INDEX 환경구축 키움증권 API - 연결테스트 키움증권 API - 계좌정보 조회 키움증권 API - 주문 키움증권 API - 종목정보 가져오기 포트폴리오 - 종목, 업종별 자산 포트폴리오 한국투자증권 API API reference 키움 OpenAPI+ 개발가이드 한국투자증권 OpenAPI 다운로드 및 가이드 Design https://www.design-seeds.com/in-nature/succulents/cacti-color-2/ https://create.piktochart.com/dashboard

R 데이터 타입 별 연산 방법 - 사칙 연산, 수치 연산

 R 데이터 타입 별 연산 방법에대해 알아보겠습니다. R에서는 기본적인 사칙 연산과 log, exp 연산을 포함한 수치 연산, 벡터 연산이 가능하다. 또 다른 언어와 달리 범위 밖에있는 변수의 값을 변경하는 '<<-' 연산이 있다. 문자로 되어 있는 경우에는 숫자로 변환하거나 paste() 함수를 사용할 수 있다. 수치연산 연산자와 함수 의미 +, -, *, / 사칙 연산 n %% m n 을 m 으로 나눈 나머지 n %/% m n 을 m 으로 나눈 몫 n^m n 의 m 승 exp(n)

R 에러 - DataFrame 사용 시 자주 발생하는 error

R Error, DataFrame 사용 시 자주 발생하는 error > mean(df[,c('age','weight')]); Warning message: In mean.default(df) : argument is not numeric or logical: returning NA Warning message: In mean.default(df[, c("age", "weight")]) : 인자가 수치형 또는 논리형이 아니므로 NA를 반환합니다. 숫자, 논리적이지 않은 객체를 평균내려고 할 때 발생한다. dataframe 내에 문자열이나, 전체 데이터 프레임의 평균을 계산하려고 할 때 발생하므로,   아래와 같이 해결하면 된다. 해결방법  1. mean()이 아닌, colMeans()를 사용해 column을 평균내는 함수 사용 R의 data type의 Dataframe 예제를 보면 더 쉽게 이해할 수 있다. -->  R Data Type(Scala/Vector/Dataframe) 2. 숫자벡터로 이루어진 column만 평균을 낸다. mean(df$score) 3. sapply() 이용 sapply(df, mean)

Rserve로 Java에서 R 연동하기

Foreground 에서 실행 > Rserve::run.Rserve() -- running Rserve in this R session (pid=5448), 1 server(s) -- (This session will block until Rserve is shut down) Background 에서 실행 > Rserve::Rserve() Starting Rserve...  "C:\PROGRA~1\R\R-34~1.4\library\Rserve\libs\x64\Rserve.exe" 

R에서 통계분석 데이터 이용하기 (foreign package)

R에서 통계분석 데이터 이용하기  foreign 패키지 SPSS, SAS, STATA 등 통계분석 소프트웨어의 파일을 불러오기 위해서 'foreign' 패키지를 이용한다. install.packages('foreign') library(foreign)      # SPSS 파일 불러오기 library(dplyr)        # 전처리 library(ggplot2)    # 시각화 library(readxl)      # 엑셀 파일 불러오기 # SPSS 파일을 Dataframe으로 가져온다 raw_welfare <- read.spss(file = 'Koweps_hpc10_2015_beta1.sav', to.data.frame = T) # 복사본을 만든다 welfare <- raw_welfare # colume에 대한 정보 분석 str(welfare) # colume 명 변경 welfare <- rename(welfare,                   sex = h10_g3,                   birth = h10_g4,                   marriage = h10_g10,                   religion = h10_g11,                   income = p1002_8aq1,                   code_job = h10_eco9,                   code_region = h10_reg7                   ) # 성별 항목 이름 부여 sex : 1 -> male 2 -> female > welfare$sex <- ifelse(welfare$sex == 1, 'male', 'female') > table(welfare$sex) ## female male ## 9086 7578 qplot(welfare$sex

[R 함수] sqldf 사용 방법

이미지
How to use 'sqldf' function sqldf 는 R에서 sql 문법을 사용할 수 있도록 해주는 package이다. 1. Libarary load library(ggplot2) library(sqldf) mpg 데이터를 사용하기 위해 ggplot2 라이브러리를 로드한다. sqldf 함수를 사용하기 위해 sqldf 라이브러리를 로드한다. mympg <- sqldf('SELECT *, (cty+hwy)/2 AS total FROM mpg') mympg2 <- sqldf('SELECT total,                 CASE                 WHEN total > 20                 THEN "PASS"                 ELSE "FAIL"                 END AS "total2"                 FROM mympg') mympg2 <- sqldf('SELECT total,                 CASE                 WHEN total > 20                 THEN "PASS"                 ELSE "FAIL"                 END AS "total2"                 FROM mympg') mympg3 <- sqldf('SELECT total,                 CASE                 WHEN total > 30                 THEN "A"                 WHEN total > 20                 THEN "B&q

[R 함수] dplyr 패키지 함수 사용 방법

How to use 'dplyr' package dplyr  패키지 함수 데이터 전처리 작업에 가장 많이 사용되는 패키지다. dplyr 함수 기능 filter() 행 추출 select() 열(변수) 추출 arrange() 정렬 mutate() 변수 추가 summarise() 통계치 산출 group_by() 집단별로 나누기 left_join() 데이터 합치기(열) bind_rows() 데이터 합치기(행) filter select arrange mutate summarise group_by left_join bind_rows mpg %>%   group_by(manufacturer) %>%   summarise(mean_hwy = mean(hwy)) %>%   arrange(desc(mean_hwy)) %>%   head(3)

R - Database 와 연동하기

R - Oracle JDBC 연동하기 oracle jdbc 계정생성 Oracle JDBC 와 연동 library(rJava) library(RJDBC) library(DBI) drvName <- 'oracle.jdbc.driver.OracleDriver'; id <- 'ruser' pwd <- '111111' url <- 'jdbc:oracle:thin:@localhost:1521:XE' # 1. Driver Loading drv <- JDBC(driverClass = drvName,             classPath = 'c:\\java_hive_lib\\ojdbc6.jar') # 2. Connection conn <- dbConnect(drv, url, id, pwd) # 3. Statement sqlstr <- 'SELECT MONTHS_BETWEEN(sysdate,hiredate) AS day, sal FROM emp' # 4. ResultSet emp <- dbGetQuery(conn, sqlstr);< # 5. Close dbDisconnect(conn) library(ggplot2) p <- ggplot(emp, aes(x = DAY, y = SAL)) + geom_line() library(plotly) ggplotly(p) R - Hive 연동하기 R에서 hive에 접근하기 위해 Linux에서 Hive service를 실행시킨다. # 하둡실행 > start-all.sh # hive service 실행 > hive --service hiveserver Driver와 URL 만 바꾸면 다른 database와 연동가능 library(rJava) library(RJDBC) library(DBI) # Hive 연동 (Linux : server1) drvName &l

R 인터랙티브 그래프 그리기

이미지
인터랙티브 그래프(Interactive Graph) 마우스 움직임에 반응하며 실시간으로 형태가 변하는 그래프다. HTML 포맷으로 저장 가능하며, 일반 사용자들도 웹 브라우저를 통해 그래프를 조작할 수 있다. plotly plotly Document ggplot 그래프를 인터랙티브 그래프로 바꿔준다.  > install.packages('plotly') library(plotly) library(ggplot2) # 배기량(displ)에 따른 고속도로연비(hwy) , 구동방식(drv) p <- ggplot(data = mpg, aes(   x = displ,    y = hwy,     col = drv )) + geom_point() ggplotly(p) HTML 파일로 저장 Viewer > Save as Web Page htmlwidgets 사용하는 방법 > install.packages('htmlwidgets') library(htmlwidgets) # 위에서 사용한 p(ggplot Graph) 사용 pp <- ggplotly(p) saveWidget(pp, file = "aa.html")

[R 함수] KoNLP 패키지 이용해 한글 분석

이미지
KoNLP 패키지를 이용해 블로그를 분석한 결과 KoNLP(Korean Natural Language Processing) 패키지 KoNLP github 한글 자연어 분석 패키지로 한국어를 분석할 수 있는 총 27개의 함수가 들어 있다. KoNLP 패키지를 사용하기 위해서는 rJava, memoise 패키지가 필요하다. 패키지 설치 install.packages("rJava") install.packages("memoise") install.packages("KoNLP") 패키지 로드 library(rJava) library(memoise) library(KoNLP) library(dplyr) library(stringr) rJava 설치되어 있는 jdk 를 연동하는 역할 rJava를 설치한 후 library를 로드하면 오류가 발생한다. error : JAVA_HOME cannot be determined from the Registry solution : 환경변수 setting system 변수에  JAVA_HOME C:\Program Files\Java\jdk-9.0.4 추가 memoise stringr 특수문자 제거를 위해 사용 텍스트 파일에 있는 한글 분석 useNIADic(); txt <- readLines('hiphop.txt') head(txt) install.packages('wordcloud')

[R 함수] ggplot2 패키지를 이용해 그래프 만들기

이미지
ggplot2 는 The Grammar of Graphics에 기반하여 그래프를 만드는 시스템이다.  ggplot2에 data를 제공하고, 변수들을 어떻게 매핑할 지, 어떤 방법으로 그래프를 그릴지 설정한다. ggplot2를 처음 사용할 때 배우기 좋은 사이트 http://r4ds.had.co.nz/data-visualisation.html http://r4ds.had.co.nz/graphics-for-communication.html https://www.datacamp.com/courses/data-visualization-with-ggplot2-1 배경 설정하기 ggplot(data = mpg, aes(x = displ, y = hwy)) 그래프 추가하기 산점도(Scater Plot) geom_point() 축 범위를 조정하는 설정 xlim() , ylim() 막대 그래프(Bar Chart) 집단 간 차이 표현하기  geom_col() : 평균 막대 그래프 막대의 높이가 데이터의 값을 나타내도록 하려면 geom_col()을 사용한다. 데이터를 있는 그대로 남겨둔다.  geom_bar() : 빈도 막대 그래프 x의 위치에 나타나는 각 그룹의 빈도 수를 나타낸다. ( 또는 가중치의 합계)   # "suv" 차종을 대상으로  # 평균 cty 가 가장 높은 회사 다섯 곳을 막대 그래프로 표현  # 막대는 연비가 높은 순으로 정렬  mpg.suv <- mpg[ mpg$class == "suv", c('cty', 'manufacturer', )]  result2 <- aggregate(cty~manufacturer, mpg.suv, mean) result2 <- head(result2[order(result2$cty, decreasing = T), ], 5)  ggplot(data = result2, aes(x = manufacture

[R 함수] aggregate, apply 사용 방법

이미지
Googlevis R과 Google chart API 의 인터페이스를 제공한다. 실습을 위한 데이터를 얻기 위해 설치했다. 아래와 같이 설치하면, Fruits와 같은 데이터셋을 사용할 수 있다. install('googlevis') library('googleVis') Fruits aggregate(x, by, function, ... )  > banana <- Fruits[Fruits$Fruit == 'Bananas',] Fruits 데이터 셋에서, Banana의 판매 수익을 알고 싶을 경우 어떻게 할 것인가?  아래와 같이 'Bananas' 를 직접 Hard coding해서, 'Bananas'의 정보를 얻을 수는 있을 것이다. 만약, 문자가 변경되어 'Oranges', 'Apples' 를 보고 싶다면? 매번 변경해줘야 한다.   이런 Hard coding은 하지 않도록 해야한다.   aggregate 는 Group By 같은 기능을 통해 이런 문제해결에 도움을 주는 함수다.   aggregate (함수를 적용할 대상~기준, 데이터 , 함수) 데이터를 기준에 따라 분할하고 각각에 대한 요약 통계를 계산(함수를 이용해) 한 다음 결과를 편리한 형식으로 반환한다. (Splits the data into subsets, computes summary statistics for each, and returns the result in a convenient form) ## Default S3 method: aggregate(x, ...) ## S3 method for class 'data.frame' aggregate(x, by, FUN, ..., simplify = TRUE, drop = TRUE) ## S3 method for class 'formula&

R에서 외부 데이터 이용하기 (Excel, csv)

이미지
Excel 파일을 사용하기 위해서 Package 설치 console 창에서 readxl 패키지 설치  > install.packages('readxl') 설치가 제대로 되지 않았을 경우 설치된 경로를 확인해 package를 삭제하고 다시 설치해야한다.  ⌕ C:\Users\student\AppData\Local\Temp\RtmpCu2rjY\downloaded_packages package 사용하기 library(package명) Excel 데이터 파일 준비 사용할 데이터 파일 (Excel) 을 프로젝트 폴더 안에 붙여넣으면 R studio에서 확인할 수 있다. 데이터 로드하기 패키지를 매번 로드해 줘야 하기 때문에 함수로 만들었다. exdata <- function(){ library(readxl); # 같은 workspace 에 존재하는 파일이기 때문에 파일명만 명시해도 된다 data <- read_excel('excel_exam.xlsx'); return(data); } data <- exdata(); colnames(data) <- c('a','b','c','d','e') mean(data$math) read_excel 속성 # column명이 없는 데이터인 경우 첫 줄을 column명으로 만들지 않도록 col_names = F 설정 data <- read_excel('excel_exam_nohead.xlsx', col_names = F); # Excel 파일의 2번째 sheet에 있는 데이터를 읽어온다 data <- read_excel('excep_exam_3.xlsx', sheet =2); csv 파일 이용하는 방법 getcsv <- fun

R Data Type

Scala 단일 차원의 값 , 길이가 1인 벡터를 의미 > a <- 3 NA(Not Available) 데이터 값이 없음 변수에 NA 값이 저장되어 있는지 확인할 때는 is.na() 함수를 사용한다 is.na(변수명) NULL 변수가 초기화되지 않았을 때 사용 어떤 변수에 NULL이 저장되어 있는지 확인할 때는 is.null() 함수를 사용 is.null(변수명) Vector 한가지 타입만 저장가능 주어진 값들을 모아 벡터 생성 c( , , , ) 객체에 이름을 저장 / 반환 names(x) <- c("kim","so", "parck") names(x) 벡터 x의 n번째 요소 x[n] 벡터 x에서 n번째 요소를 제외한 나머지. 여러개 제외 가능 x[-n] x[-n1,-n2, , ,-nk] 벡터 x로부터 idx_vector에 지정된 요소를 얻어옴 -- 벡터 x의 start부터 end까지의 값을 반환 x2 <- x[start:end] List Matrix 한가지 타입만 저장가능 > matrix(c(1, 2, 3, 4, 5, 6, 7, 8, 9), nrow=3) [,1] [,2] [,3] [1,] 1 4 7 [2,] 2 5 8 [3,] 3 6 9 > matrix(c(1, 2, 3, 4, 5, 6, 7, 8, 9), nrow=3, byrow=TRUE) [,1] [,2] [,3] [1,] 1 2 3 [2,] 4 5 6 [3,] 7 8 9 > colnames(m1) <- c('c1','c2','c3'); > rownames(m1) <- c('r1','r2','

R Studio

R 프로그래밍을 위한 환경설정 R을 설치하면 기본적으로 console 화면에서 tab(자동완성), 키보드 방향키 위/아래를 눌러서 이전/이후 명령 이력을 볼 수 있다.  더 많은 기능을 이용하고 싶다면, IDE를 설치하면 된다.  RStudio 는 명령 콘솔 외에 파일 편집, 데이터 보기, 명령 히스토리, 차트 등을 손쉽게 접근할 수 있게 해준다.  자세한 설치 방법은 아래 사이트에 자세히 나와있다. R 프로그래밍환경설정 R 기본툴 RStudio