1
2
3
4
5
6
7
8
9
install.packages("randomForest") //패키지 설치

library(randomForest) // 메모리 로딩

#NA : 값이 없음 NULL :초기화 되지 않은 상태

is.na(four) //NA가 있으면 TURE
is.null(four) //null이 있으면 TURE

TURE & TURE // &하나로 불린 엔드연산
TURE | TURE // |하나로 불린 오어연산

#factor 범주형/카테고리 / 명목형 : 크기비교 불가 ,순서형 : 크기비교 가능

명목형 : 좌파/우파
순서형 : 소 , 중, 대 같은 순서를 줄수 있는 의미의 카테고리

수치형: 카테고리로 나눌수 없는자료형

gender<-factor("f", c("m","f")) // 카테고리에 m과 f가 있고 f를 할당하겠다.
c() // 변수를 벡터로 묶어준다. //range 지정 C(1:5) 1~5까지
//seq(1,5)와 동일 또는 seq(1,5,by=3) 출력 1 4

mean(x) // x안에 있는 평균을 리턴.
max(x) // "" 최대값을 리턴
min(x) // "" 최소값을 리턴

paste(<strs>, collapse=<delimitor>) //벡터안에있는 문자열을 결합후 리턴


install.packages("ggplot2")
library(ggplot2)

qplot(x) //벡터 x의 요소를 시각화. 빈도그래프(막대그래프)

관측치 : 행 , 관측값: 열

str(mpg) // structure check
qplot(data=mpg, x=hwy) //데이터 mpg , x축 hwy 관측값
qplot(data=mpg, x=drv,y=hwy) //x, y축 명시
qplot(data=mpg, x=drv,y=hwy, geom="line") //선그래프로 표시 geometry
qplot(data=mpg, x=drv,y=hwy, geom="boxplot") //이상치 확인

Quantile = 4분위수 // 하위 25% 1분위수, 중위수 50%, 75% 3분위수 , 100% 4분위수
Q1 = 25% , Q3 - Q1 = IQR(InterQ range) 박스플롯의 윗선은 IQR*1.5 + Q1 아래선은 IQR*1.5 -Q1

qplot(data=mpg, x=drv,y=hwy, geom="boxplot",colour=drv)


df=data.frame(eng,math,row.names=Nstudent)
df
class(df)

df3=data.frame(eng,math,kor,row.names = Nstudent) df3 mean(df3$eng) //프레임 안에 있는 속성은 $를 통해 접근 가능하다


//////////벡터와 데이터 프레임을 바로 생성 /////////
df4<-data.frame(
eng=c(90,100,70,60),
math=c(50,60,100,9),
kor=c(1,1,2,3)
)
df4

/////////////////////////////////////////////////

install.packages("readxl") // xlsl 읽기
library(readxl)

df <- read_excel("Data/excel_exam.xlsx")

df2 <- read_excel("Data/excel_exam_novar.xlsx",col_names = F) //열 이름 주기 df2

df3 <- read_excel("Data/excel_exam_sheet.xlsx",sheet=3) // 시트 번호 추가
df3

df4 <- read.csv("Data/csv_exam.csv")
df4

write.csv(df5,file="Data/mydf.csv") // save csv file
save(df5, file="Data/mydf_s.rda")  // compress df and save as rda file 
load("Data/mydf_s.rda") // save 할때 사용한 변수명 df5를 그대로 사용해야 한다.

rm(df5) //변수 삭제

str(df5)  // 정보 출력
dim(exam)  // raw 와 col의 갯수만 출력 dimension  

head(exam, 10) // 상위 10개만 출력

View(exam) // 데이터 프레임을 그래픽출력
summary(exam) //"" 기술 통계 출력
median(a) // 중위수 출력

mpg<-as.data.frame(mpg)

//////////필수
View
dim
str
class
summary
//////////// 컬럼 이름 바꾸기 ///////////

install.packages("dplyr") library(dplyr) df_new<-rename(df2, v1=var1) // var1 컬럼 이름을 v1로 df_new


/////////////////////////////////////// 파생변수(컬럼 조작)

mydf <- data.frame(eng=c(70,90,80),
                   mat=c(50,60,70))

mydf$sum<-mydf$eng + mydf$mat //sum 컬럼 생성

mydf

hist(mpg$tot)

mpg$hl <- ifelse(mpg$tot >= 23, "gr_h", "gr_l") // 파생변수 만듬과 동시에 삼항연산자 적용
mpg$grade <- ifelse(mpg$tot >= 28, "A", ifelse(mpg$tot >= 20, "B", "C")) //중복 적용

table(mpg$hl) //빈도표 출력 명목형 관련 사용처 많음.

table(mpg$grade) qplot(mpg$grade) str(mpg) summary(mpg)

//////////////////////////////////////////////////////////

%% 필터

library(dplyr)
exam %>% filter(class==3) // 파이프 라인 사용

exam %>% filter(class!=3 & science >= 50) //중복 조건

exam %>% filter(class %in% c(1,4,5)) ///포함 되는 정보 출력


rm(mpg$eng) // 컬럼삭제




!meanCty_vok =mean((mpg %>% filter(manufacturer == "volkswagen"))$cty) // 그룹 평균


exam %>% select(science) // 컬럼 추출
exam %>% select(science,math, class) //복수 컬럼 추출

exam %>% select(-science) // 컬럼 제외 출력 -를 붙인다


!!!!!!! %>% : dplyr 패키지에서 제공하는 연산자이다 !!!!!!

# 다중 조건
temp = exam %>% filter(class == 3) %>% select(math) %>% head(2)


//////////////////////////정렬 ///////////////////////////

!!!! TAP 키로 자동완성!! !!!!

exam %>% arrange(math) //오름차순
exam %>% arrange(desc(math)) // 내림차순


exam %>% arrange(math, english) //math로 오름차순 정렬 후 english로 오름차순 정렬


exam %>% arrange(class, english) // 반별 영어점수 오름차순















cs


+ Recent posts