-
선생님 코드
library(rJava) library(DBI) library(RJDBC) drv <- JDBC(driverClass = "org.mariadb.jdbc.Driver", classPath = "C:/work/mariadb-java-client-2.6.2.jar") conn <- dbConnect(drv = drv, "jdbc:mysql://127.0.0.1:3306/test", "root", "123") conn dbListTables(conn) # 테이블 목록 보기 query <- "select jikwon_pay,date_format(now(),'%Y') - date_format(jikwon_ibsail,'%Y') + 1 as jikwon_ibsa from jikwon" datas <- dbGetQuery(conn, query) head(datas, 3) is(datas) str(datas) table(datas$jikwon_ibsa) # 입사년도별 건수 cor(datas$jikwon_ibsa, datas$jikwon_pay) # r : 0.9196725 model <- lm(formula = jikwon_pay ~ jikwon_ibsa, data = datas) model plot(datas$jikwon_ibsa, datas$jikwon_pay) abline(model, col='red') summary(model) go_func <- function(){ y_num <- readline('근무년수 입력:') y_num <- as.numeric(y_num) new_data <- data.frame(jikwon_ibsa=y_num) return(predict(model, newdata = new_data)) } cat('예측결과는 ', go_func())
작성자 코드
install.packages("rJava") # install install.packages("DBI") # install install.packages("RJDBC") # install library(rJava) library(DBI) library(RJDBC) drv <- JDBC(driverClass = "org.mariadb.jdbc.Driver", classPath = "C:/work/mariadb-java-client-2.6.2.jar") conn <- dbConnect(drv = drv, "jdbc:mysql://127.0.0.1:3306/test", "root","123") # ip주소와 포트번호, database명, ID, PW를 입력한다. conn dbListTables(conn) # test table 호출 query <- "select jikwon_pay, date_format(now(),'%Y') - date_format(jikwon_ibsail,'%Y') + 1 as jikwon_ibsa from jikwon" goodsAll <- dbGetQuery(conn, query) # query문 참조 goodsAll cor(goodsAll$jikwon_ibsa, goodsAll$jikwon_pay) # 양의 상관관계가 있다. jik <- lm(formula = jikwon_pay ~ jikwon_ibsa, data = goodsAll) summary(jik) plot(goodsAll$jikwon_ibsa, goodsAll$jikwon_pay) coef(jik) fitted(jik)[1:4] # 모델이 예측한 값(dist) residuals(jik)[1:4] # 모델과 실제값과의 차이(residuals, 잔차) fitted(jik)[1:4] + residuals(jik)[1:4] # 예측값 + 잔차 = 실제값. 잔차 = 실제값 - 예측값 confint(jik) y_num <- readline('근무년수 입력:') y_num <- as.numeric(y_num) y_num predict(jik, newdata = data.frame(jikwon_ibsa=y_num)) abline(jik, col = 'blue')
현재 날짜에서 입사일을 뺀 것에 + 1을 해주면 근무 년수를 계산할 수 있다.
'R' 카테고리의 다른 글
R 기초 24 - AIC 통계량, stepwise regression, backward(후진소거법), forward(전진선택법), both(단계적 방법), 회귀모델 체크 사항 (0) 2022.10.26 R 기초 23 - 다중회귀분석 (독립변수가 복수), 선형회귀분석의 기존 가정 충족 조건 검정 (0) 2022.10.26 R 기초 22 - 회귀모델 평가 (0) 2022.10.26 R 기초 21 - 선형회귀분석(회귀식 적합도에 대한 가설 검정) (0) 2022.10.26 R 기초 20 - 단순선형회귀 모델 예제, 회귀분석모형의 적절성을 위한 조건 (0) 2022.10.25