데이터 다루기
[알까기 2의 내용 정리]
* 실습 데이터는 알까기2에서 제공된 데이터 입니다.
DF <- read.csv("example_studentlist.csv", stringsAsFactors = F)
is.vector(DF$height)
str(DF) #DF 구조확인. class or str
DF[7] #DataFrame으로 출력.
str(DF[7])
DF[[7]] #VECTOR 형태로 추출.
str(DF[[7]])
DF[c(6,7)]
DF[,7]
DF[,c(6,7)]
class(DF[,c(6,7)])
class(DF[,7])
class(DF[c(6,7)])
attach(DF) #겹치는 객체가 없을 경우에만 가능하다. 하지만 DF와는 다른 객체로 복사된다는 느낌이다.
#DF$height와 같은 형태를 사용하지 않고도 접근 가능하다.
height
search()
DF2 <- subset(DF,subset = (height > 170))
DF4 <- subset(DF,select = c(name,height),subset = (height>170)) #name과 height를 subset(기준)으로 만든다.
DF3 <- DF[DF$height>170,c(1,7)]
BMI = DF$weight/DF$height^2
DF <- cbind(DF,BMI) #column bind 열을 추가.
Omit <- read.csv("omit.csv")
DF <- cbind(DF,Omit) #합치는 거일뿐
DF <- merge(DF,Omit,by = "name") #name을 기준으로 join
a <- c(1:20)
S <- c("파스타","짬뽕","순두부 찌개","요거트 아이스크림","커피")
L <- c(T,F,F,T,T,T)
List <- list(DF,a,S,L)
List <- list(DataFrame = DF, Number = a, Character = S, Logic = L) # 리스트는 어떠한 형태라도 합칠 수 가 있다.
List$DataFrame
class(List[[1]])
class(List[1])
List[1] <- NULL
List
class(List[1])
class(List[["Number"]]) # [[]] 와 $로 접근하는 방법은 안의 데이터를 온전한 그 형태를 인지하고 연산 가능하게 하는것.
class(List$Number) # [] 는 List의 순서에 있는 데이터만 나오는 것으로 여전히 List 데이터 타입을 가지고 있다.
HeightBySex <- split(DF$height,DF$sex) #data.frame의 data를 list형태로 합치면서 data.frame에서 찢어낸다.
class(HeightBySex)
mean(HeightBySex$남자)
mean(HeightBySex[[1]])
sapply(HeightBySex, mean) #리스트 형태의 각 요소, Index 별로 함수 적용.
sapply(iris[-5],mean) #data.frame 의 경우 각 열별로 데이터를 연산함. 행별로 하기위해서는 apply(data,1,함수)
#결측치 다루기
#complete.case()
a <- c(1,2,5,NA,2,3,4)
complete.cases(a) #NA만 False 나머지 true
a[complete.cases(a)] #NA를 제외한 나머지 출력
#data.frame에도 사용할 수 있다. 행단위로 True, False출력 하나라도 NA면 false 전체 삭제가 된다.
#na.omit() 함수도 동일하게 NA를 제거하고 출력한다.
'BIGDATA > R' 카테고리의 다른 글
#06. 특강1. [ 경영통계 데이터 요약 및 정리 ] (0) | 2016.07.03 |
---|---|
#05. 데이터 다루기 2 [ 실제 데이터 ] (0) | 2016.06.30 |
#04. 도수분포 [ 연속, 명목 ] (0) | 2016.06.30 |
#02. 외부데이터 호출. (0) | 2016.06.26 |
#01. 기초 (0) | 2016.06.26 |