######################################################################
#########################3-3 riper_fun() #############################
######################################################################
riper_fun <- function(){
library(RWeka)
input_table <- readline('csv파일을 입력하세요. ex) emp.csv : ')
table_name <- read.csv(input_table, stringsAsFactors = F, header=T)
print(colnames(table_name))
input_header <- readline('컬럼명이 있습니까? ex)T OR F : ')
input_label <- readline('라벨 변수명을 입력하세요. ex)buy_yn : ')
input_rm_num <- readline('배제할 컬럼이 있다면 컬럼 위치번호를 입력하세요. ex) n,n,n ..., 없을 시 0 : ')
### 헤더 유무 검사
if (input_header == 'T'){
table_name <- read.csv(input_table, stringsAsFactors = T, header=T)
}else {
table_name <- read.csv(input_table, stringsAsFactors = T, header=F)
}
#컬럼명으로 컬럼위치 찾기
input_label_num <- which(colnames(table_name)==input_label)
### na값 제거
table_name <- na.omit(table_name)
## 라벨 값 추출
table_label_col<-table_name[, input_label_num]
### 제거할 컬럼 제거
split_num <- strsplit(input_rm_num, ',')
split_num <- sort(as.integer(c(unlist(split_num), input_label_num)), decreasing = T)
if (0 %in% split_num ){
table_name <- table_name[,-as.integer(input_label_num)]
}else{
for(i in split_num){
table_name <- table_name[,-as.integer(i)]
}
}
table2 <- cbind(table_name, lb=factor(table_label_col))
print(table2)
## 결과
n <- dim(table_name)[2]
for ( i in 1:n) {
table2[,i] <- factor(table2[,i])
}
set.seed(1)
train_cnt <- round(0.75*dim(table2)[1])
train_index <- sample(1:dim(table2)[1],train_cnt,
replace=F)
table_train <- table2[train_index, ]
table_test <- table2[-train_index, ]
print(table_train)
print(table_test)
model <- JRip(lb~., data = table_train)
summary(model)
result <- predict(model, table_test)
library(gmodels)
test_label_num <- which(colnames(table_test)=="lb")
CrossTable(result, table_test[ , test_label_num] )
}
