exam %>% filter(class==1) %>% select(math) %>% arrange(desc(math))
exam %>% arrange(class,desc(math))
exam %>% arrange(class,desc(math)) %>% mutate(total=math+english+science) %>% head
exam %>% mutate(test=ifelse(science>=60,“pass”,“fail”)) %>% head
if(“rJava” %in% installed.packages(“rJava”) == FALSE)install.packages(“rJava”) if(“DBI” %in% installed.packages(“DBI”) == FALSE)install.packages(“DBI”) if(“RJDBC” %in% installed.packages(“RJDBC”) == FALSE)install.packages(“RJDBC”) if(“memoise” %in% installed.packages(“memoise”) == FALSE)install.packages(“memoise”) if(“data.table” %in% installed.packages(“data.table”) == FALSE)install.packages(“data.table”) library(data.table) library(RJDBC) library(DBI) library(memoise) library(rJava)
x <- c(“a”) myJDBC <- JDBC(“oracle.jdbc.driver.OracleDriver”, “C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib\ojdbc6.jar”) conn <- dbConnect(myJDBC, “jdbc:oracle:thin:@localhost:1521:xe”, “hr”, “oracle” ) tab <- dbgetquery()
tab <- data.frame(tab) view(x) tname <- a tname <- x tab <- dbGetQuery(conn,“SELECT * FROM TAB”) tab # dplyr # filter, select, arrange, mutate, # summarise, group_by, left_join, bind_rows tab <- data.frame(tab) View(tab) tname <- tab$TNAME tname <- as.vector(tname) tname # [1] “COUNTRIES” cnt “DEPARTMENTS” dep
# [3] “EMPLOYEES” emp “EMP_DETAILS_VIEW” empd # [5] “JOBS” job “JOB_HISTORY” jobh
# [7] “LOCATIONS” loc “REGIONS” reg cnt <- data.frame(dbGetQuery(conn,“SELECT * FROM COUNTRIES”)) dep <- data.frame(dbGetQuery(conn,“SELECT * FROM DEPARTMENTS”)) emp <- data.frame(dbGetQuery(conn,“SELECT * FROM EMPLOYEES”)) empd <- data.frame(dbGetQuery(conn,“SELECT * FROM EMP_DETAILS_VIEW”)) job <- data.frame(dbGetQuery(conn,“SELECT * FROM JOBS”)) jobh <- data.frame(dbGetQuery(conn,“SELECT * FROM JOB_HISTORY”)) loc <- data.frame(dbGetQuery(conn,“SELECT * FROM LOCATIONS”)) reg <- data.frame(dbGetQuery(conn,“SELECT * FROM REGIONS”)) head(cnt) #cnt의 컬럼명을 한글로 전환하시오 str(cnt) #COUNTRY_ID 국가아이디 #COUNTRY_NAME 국가명 #REGION_ID 지역아이디 cnt <- cnt %>% dplyr::rename(국가아이디 = COUNTRY_ID, 국가명 = COUNTRY_NAME, 지역아이디 = REGION_ID ) str(cnt) #dep의 컬럼명 전환 str(dep) #Department_ID 부서아이디 #DEPARTMENT_NAME 부서명 #MANAGER_ID 매니저아이디 #LOCATION_ID 위치아이디 library(dplyr) dplyr::rename(부서아이디 = DEPARTMENT_ID) dep <- dep %>% dplyr::rename(부서아이디 = DEPARTMENT_ID, 부서명 = DEPARTMENT_NAME, 매니저아이디 = MANAGER_ID, 위치아이디 = LOCATION_ID) str(dep)
str(emp) library(dplyr) emp <- emp %>% dplyr::rename(직원아이디 = EMPLOYEE_ID, 이메일 = EMAIL, 전화번호 = PHONE_NUMBER, 채용일 = HIRE_DATE, 업무아이디 = JOB_ID, 연봉 = SALARY, 커미션비율 = COMMISSION_PCT, 매니저아이디 = MANAGER_ID, 부서아이디 = DEPARTMENT_ID) %>% mutate(이름 = paste(FIRST_NAME, LAST_NAME)) #삭제하는법 emp <- subset(emp,select = -c(FIRST_NAME,LAST_NAME)) View(head(emp)) #view의 V는 대문자로 써야한다. #매달 지급하는 월급이 연봉/12를 보여주는 월급이라는 컬럼(변수)를 추가시키시오 #0단위 이하는 절삭(정수단위만 나오게하기) #파이프라인을 사용하면 전부 emp에 있는 이라는 의미로 사용이 가능합니다. emp <- emp %>% dplyr::mutate(월급=연봉 %% 12) emp %>% head emp %>% View
emp %>% left_join(dep, by=“부서아이디”) %>% filter(emp$연봉 >= 10000) %>% select(이름,직원아이디,연봉,부서명) %>% arrange(desc(연봉))
emp %>% filter(emp$연봉 < 3000) %>% mutate(보너스=연봉*1/100) %>% select(이름,직원아이디,연봉,보너스) %>% arrange(직원아이디)
emp %>% filter(연봉< 3000) %>% dplyr::mutate(보너스=연봉*0.01) %>% select(이름,직원아이디,연봉,보너스) %>% arrange(직원아이디)
보너스지급명세 <- emp %>% filter(연봉< 3000) %>% dplyr::mutate(보너스=연봉*0.01) %>% select(이름,직원아이디,연봉,보너스) %>% arrange(직원아이디) View(보너스지급명세) rm(보너스지급명세) View(보너스지급명세)
emp %>% left_join(dep, by=“부서아이디”) %>% filter(연봉 >= 10000) %>% select(부서명,이름,연봉)
dep %>% left_join(emp,by=“부서아이디”) %>% group_by(부서명,부서아이디) %>% dplyr::summarise(연봉평균=mean(연봉,na.rm=T)) %>% arrange(desc(연봉평균))
dep %>% dplyr::distinct(부서명) %>% count
View(job) job <- job %>% rename(업무아이디 = JOB_ID, 직책 = JOB_TITLE, 최소연봉 = MIN_SALARY, 최대연봉 = MAX_SALARY) View(job) View(dep) View(emp)
emp %>% left_join(job,by=“업무아이디”) %>% left_join(dep,by=“부서아이디”) %>% filter(연봉 > 12000) %>% select(부서명,이름,연봉,직책)
emp %>% left_join(job,by=“업무아이디”) %>% left_join(dep,by=“부서아이디”) %>% group_by(부서아이디,부서명) %>% summarise(max(연봉))
emp %>% select(부서아이디,이름,연봉) %>% filter(is.na(emp$부서아이디))
emp %>% filter(is.na(emp %>% select(부서아이디))) %>% select(이름,연봉)