1 / 42

5 장 데이터 조작

5 장 데이터 조작. 5_1. Iris 데이터. 데이터 러닝머신에 사용할 예제 붓꽃의 3 가지 종류에 대해 꽃바침과 꽃잎의 길이를 정리한 데이터 Species 는 붓꽃의 종류. Iris 와 macars. Iris 의 3 차원배열 형태. 5_2. 파일 입출력. X<-read.csv(“FileName.csv”) - csv 파일을 불러들여옴 - names(x)<-c(“column1”,”column2”..) - head(x). 추 가. as.[class].

Download Presentation

5 장 데이터 조작

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 5장 데이터 조작

  2. 5_1. Iris데이터 • 데이터 러닝머신에 사용할 예제 • 붓꽃의 3가지 종류에 대해 꽃바침과 꽃잎의 길이를 정리한 데이터 • Species는 붓꽃의 종류

  3. Iris와 macars Iris의 3차원배열 형태

  4. 5_2. 파일 입출력 • X<-read.csv(“FileName.csv”) - csv파일을 불러들여옴 - names(x)<-c(“column1”,”column2”..) - head(x)

  5. 추가

  6. as.[class] • as.character(table$column) - 문자형으로 변환 • as.complex(table$column) - 복합형(nemeric벡터와 혼합) • as.logical(table$column) - 논리적으로 TRUE와 FALSE 구별 • as.integer(table$column) - 숫자형변환 • as.numeric(table$column) - 문자형을 숫자로 인식했을 때

  7. * Factor이 아닌 문자형으로 읽어들이기 • N/A로 인식하는 데이터가 있을 때 문자형으로 읽어들인다. • 또한 인식하지 못하는 데이터를 na.strings=(“못읽는데이터”) •  못읽는 데이터가 NA로 변환

  8. 5_3. save(), load()

  9. 5_4. rbind(), cbind() • 행렬에 추가할 때 사용하는 함수 • Insert문과 동일 • Rbind(“column1”,”column2”)..

  10. 5_5 apply() • 행 또는 열방향으로 특정함수를 적용하는데 사용. • Apply(행렬,방향,함수) 형태로 사용 Ex) apply(d,1,sum) 형태 -> d의 자료를 1 또는 2로 나타내어 방향으로 더한다. ->1은 행을 나타내고 2는 열을 나타낸다.

  11. 단, apply함수나 colSums, rowSums의 함수들은 매개변수의 조건이 같아야한다. colSums, rowSums, colMeans, rowMeans의 의미

  12. 5_5.2 plyr::adply() • Apply()는 데이터 프레임을 받아 데이터 프레임을 행 또는 열방향으로 처리하는데 사용가능하다. • 하지만 문자열 데이터와 섞어 사용할 경우 데이터를 모두 문자열로 변환시켜버리는 단점이 있다. • 이를 위해 plyr이라는 패키지를 사용한다.

  13. 조건을 입력하여 값을 압축 하지만, 뭔가 잘못됨..

  14. 5_5.3lapply() • Lapply(X,함수)의 형태로 호출하며 이 때, ‘X’는 벡터 또는 리스트이며, ‘함수’는 ‘X’ 내 각 요소에 적용할 함수 풀 때는 >Unlist(result) 리스트형태

  15. Unlist를 통해 리스트를 벡터로 전환 Matrix를 통해 벡터를 행렬로 전환 As.data를 통해 행렬을 데이터프레임으로 전환 Names를 사용해 리스트로부터 변수명을 얻어와 데이터 프레임의 각 열에 이름 부여

  16. 또는 do.call()을 사용가능 • do.call(사용할 함수, 파라미터)

  17. 5_5.4 sapply() • Lapply()와 유사하지만 리스트대신 가능한 행렬, 벡터 등으로 결과를 반환하는 함수이다. Sapply()에 의해 반환된 결과는 위에 경우에는 벡터이다. As.data.frame()를 사용해 데이터 프레임으로 변환할 수 있으며, t(x)를 사용해 벡터의 행과 열을 바궈주지 않으면 기대한 것과 다른 모양의 프레임을 얻게된다.

  18. Sapply()에 의해 반환된 결과는 위에 경우에는 벡터이다. As.data.frame()를 사용해 데이터 프레임으로 변환할 수 있으며, t(x)를 사용해 벡터의 행과 열을 바궈주지 않으면 기대한 것과 다른 모양의 프레임을 얻게된다.

  19. 5_5.5 tapply() • Tapply()는 그룹별 처리를 위한 apply함수로서 tapply(데이터,색인,함수)의 형태로 호출한다. • 여기서 색인은 데이터가 어느 그룹에 속하는지를 표현하기 위한 factor형 데이터이다.

  20. 5_5.6 mapply • Apply()함수의 마지막 변형 • Sapply()와 유사하지만 다수의 인자를 함수에 넘긴다는 차이가 있다.

  21. Sprintf in R 보통 C나 C++ Sprint(버퍼,문자열,값); In R Sprintf(“문자열 %s”,버퍼) 또는 문장을 이을 때 Sprintf(“문자열%s 문자열%s,버퍼,”문자열”)

  22. 5_6. doBy패키지 • summaryBy(), orderBy, splitBy(), sampleBy()와 같은 특정 값에 따라 데이터를 처리하는 함수들이 있다. • 다음은 base::summary()함수이다. • 자료가 인자로 주어지면 간략한 통계요약을 내놓고, 모델인자로 주어지면 모델에 대한 요약을 보여주는 방식으로 동작

  23. summaryBy() Iris의 Sepal.Length의 수치형 자료분포도 summaryBy(“formula”, table) Formula = 처리할 데이터를 일종의 수식으로 표현하는 형식 여기선 Sepal.Width+Sepal.Length ~ Species를 말한다.

  24. orderBy() - orderBy( ~ 정렬할 조건(오름차순)+ ~에 대하여 , [테이블명]) 식으로 정렬

  25. splitBy() 레벨에 따라 분류가능한 splitBy() splitBy(formula, data=parent.frame(), drop=TRUE)

  26. sampleBy() • 주어진 데이터에서 임의로 샘플을 추측하는 목적으로 사용. 중복을 허용하거나 허용하지 않고 샘플을 추출 가능하다. • 기본은 중복을 허용하지 않으며, 중복을 허용하려면 replace=TRUE로 설정하면된다. - 함수 조건식: • sampleBy(formula, frac=0.1, replace=FALSE, data = parent.frame(),systematic=FALSE)

  27. Sample() Sample(범위,추출값) 범위안에서 n개 만큼의 추출값을 랜덤형식으로 추출 Replace는 중복허용 가능한지를 나타냄 Ex)replace=TRUE는 중복허용 replace=FALSE는 중복 불가

  28. - NROW()는 주어진 데이터 프레임 또는 벡터의 행의 수 또는 길이를 반환하는 • 함수이다. • sample()는 데이터의 무작위 재배열보다는 주어진 데이터에서 일부를 사용하는 데이터, 일부를 테스트데이터로 분리하는데 더 유용하게 쓰일 수 있다.

  29. 5_7 split(), subset() • Split()는 데이터를 분리하는데 사용된다. • 형식은 split(데이터,분리조건)

  30. Subset() • Split와 유사하지만 전체를 부분으로 구분하는 대신 특정 부분만 취하는 용도로 사용된다. • Excel과 비슷

  31. 조건에 맞춰 다음의 내용을 뽑을 수 있다. Subset(“테이블명”,”조건1” & “조건2”)

  32. 5_8. Merge() • 두 데이터 프레임을 공통된 값을 기준으로 묶는 함수. • RDB에서 join과 같은 역할을 한다.

  33. Cbind()로 하면 조건안에 있는 값들이 하나로 합쳐진다. 만약 조건식이 한쪽은 3, 한쪽은 4일 때 모든 것을 출력하면 NA로 받으며, 모든 것으로 출력하지 않을 시 name을 기준으로 공통된 부분만 출력한다. RDB의 Full Outer Join

  34. 5_9. Sort(), order() sort()는 정렬을 뜻한다. sort(“테이블”)의 값은 항상 오름차순으로 테이블에 대해 정렬되며, decreasing 조건으로 변경할 수 있다. Order는 인덱스와 같다 즉, 앞부분을 인덱스로 나타내어 표시하여 준다. Order(-x)는 역순으로 x의 값에서 큰수부터 나열한 것이다.

  35. 5_10. with(), within()

More Related