Presentation is loading. Please wait.

Presentation is loading. Please wait.

소프트웨어시스템실습 2강: R 데이터 타입.

Similar presentations


Presentation on theme: "소프트웨어시스템실습 2강: R 데이터 타입."— Presentation transcript:

1 소프트웨어시스템실습 2강: R 데이터 타입

2 기초 데이터 타입: 스칼라 Scala integer: 정수 numeric: 실수 character: 문자열
logical: 논리형(부울형) complex: 복소수

3 Variables 사용가능 예 불가능 예 또 다른 예 변수값 할당 data.training data.validation
<- <<- = 대부분 <-를 사용

4 Scala 숫자 NA 값이 존재하지 않음

5 Scala NULL 변수가 초기화 되지 않은 경우 결측치(NA)와 구분

6 Scala 문자열 진리값 ‘this is string’ 또는 “this is string” TRUE, T FALSE, F
& (AND), | (OR), ! (NOT) 연산자 사용가능

7 Scala 진리값 AND나 OR연산자에는 &, | 외에도 &&와 || 가 있다.
&, |는 boolean이 저장된 벡터(Vector) 끼리의 연산시 각 원소간 계산을 할 때 사용 &&와 ||는 for나 if문 등에서 개별 값의 논리값을 계산할 때 사용

8 Scala 팩터(factor) – 범주형 데이터 factor(data, levels) factor(data)

9 Scala factor level 수정 순서가 있는 factor
eg) 나쁨 < 조금 나쁨< 보통< 조금 좋음< 아주 좋음

10 복합 데이터 구조 타입 벡터(vector) 행렬(matrix) 데이터 프레임(data frame) 리스트(list)

11 복합 데이터 구조 타입

12 Vectors Vectors c(…) function Sequence operator
Operations on two vectors c(0,1,1,2,3,5,8) 1:50 c(1,2,3,4)+c(10,20,30,40) c(1,2,3,4)*c(10,20,30,40) c(1,2,3,4)+c(1,1,1,1)

13 Vectors c(1,2,3,4)+1 1/c(1,2,3,4,5) c(1,2,3,4)+c(10,100)

14 Vectors Expressions with characters: character vector
Character in R == String in C language “Hello world.” : length = 1 : length = 2 c(“Hello world”, “Hello R interpreter”)

15 Vectors Assignment: using <- or = 방향 표현 가능 x<-1 3->three
y<-2 three z<-c(x,y) z y<-4 z

16 Vectors Reference to a set of members of a vector Specifying indices
b<-c(1,2,3,4,5,6,7,8,9,10,11,12) b b[7] b[1:6] b[b%%3==0] b[1:6] Specifying indices b[c(1,6,11)]

17 Vectors Fetching only multiples of 3 b%%3==0 b[b%%3==0]

18 Vectors 배열과 유사 한가지 타입의 데이터가 순서대로 저장

19 Vectors 각 원소에 이름 부여 가능

20 Vectors 특정요소 제외

21 Vectors

22 Vectors

23 Vectors

24 Array Array An array object is just a vector that’s associated with a dimension attribute a <- array(c(1,2,3,4,5,6,7,8,9,10,11,12), dim=c(3,4)) a a[1,2] a[1,] a[1:2,1:2] a[,1] a[1:2,] a[c(1,3),]

25 Array A matrix is just a 2-dimensional array
Arrays can have more than 2 dimensions m<-matrix(data=c(1,2,3,4,5,6,7,8,9,10,11,12), nrow=3, ncol=4) m w<-array(c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18),dim=c(3,3,2) w w[1,1,1]

26 Matrix 2차원 벡터 원소의 타입이 동일 데이터 형

27 Matrix 행과 열에 이름 부여

28 Matrix 행과 열 이름을 별도로 부여

29 Matrix 행과 열 번호로 접근 1번부터 시작함

30 Matrix

31 Matrix 행과 열 이름으로 접근 x[ x[, “features”] >= 5 ,]
두 번째 컬럼의 값이 5보다 큰 행을 출력

32 Matrix

33 Matrix 전치행렬

34 Matrix 행과 열의 개수 구하기

35 List Lists 다른 유형의 객체를 포함할 수 있으며, 각 성분에 명칭을 부여할 수 있음 component
g<-list(“this list references another list”, e) e<-list(thing=“hat”, size=“8.25”) g e e$thing e[1] component list 내부에 list 요소가 있음 [ “this...” , [ ] ] e[[1]]

36 List (키, 값) 형태의 데이터 서로 다른 데이터 타입저장 가능

37 List 리스트 내의 리스트

38 List 방법 : x$key x[n] x[[n]] 결과는 리스트, 즉, 1개의 원소를 갖는 서브리스트 반환

39 Data Frame R에서 가장 중요한 자료형 Database의 테이블과 같은 형태를 가짐 다른 방법 a <- c(…)
b <- c(…) d <- data.frame(a, b)

40 Data Frame data.frame a list that contains multiple named vectors that are the same length data.frame 컴포넌트의 참조 data.frame 데이터 연산 teams<-c(“PHI”, ”NYM”, ”FLA”, ”ATL”, ”WSN”) w<-c(92, 89, 94, 72, 59) l<-c(70, 73, 77, 90, 102) nleast<-data.frame(teams, w, l ) nleast nleast[ , “w”] nleast[ , 2] nleast$w nleast$teams ==“FLA” nleast$l[nleast$teams==“FLA”]

41 Data Frame Factor 형태의 z 열이 추가된 예이다

42 Data Frame z는 문자열 형태

43 Data Frame 컬럼 추가

44 Data Frame 컬럼명 지정 x column이 3보다 큰 행을 출력 d[d$x >3, ]

45 Data Frame 한 컬럼만 선택시 벡터처럼 출력됨. 이를 피하려면

46 Data Frame 데이터 프레임의 행 이름, 열 이름은 각각 rownames(), colnames() 함수로 지정
행과 열이름 부여 colnames(x) <- c(‘val’) rownames(x) <- c(‘a’, ‘b’, ‘c’)

47 Data Frame 엑셀형태로의 출력 view(x)

48 Functions Function 도 역시 하나의 객체로서 특정 변수에 할당 함수 호출하는 방법에 주목 !!!
f<-function(x,y){c(x+1,y+1)} f(1,2) 함수도 하나의 객체 !!! 그 내용을 보기 위해서 해당 변수를 입력함 f

49 Functions function의 형태 예: exp(1) log(x=64, base=4) log(64,4)
cos( ) log2(1) 17+2 2^10 3==4

50 Function 객체 Call-By-Values f <- function(x,i) {x[i]=4}
w<-c(10,11,12,13) f(w,1) 벡터 w 가 변수 x에 copy가 될 뿐, 연결되어 있지 않음 w

51 함수 호출시 인자지정 예) 정의: foo(a, b, c=1, d=1) c와 d는 호출시 생략 가능하고 default값이 지정됨
순서 무시 가능 foo(d=5, a=3, b=4)

52 Special Values NA: “Not Available” Inf, -Inf NaN: “Not a Number”
length(v)<-4 v<-c(1,2,3) v v 2^1024 1/0 -2^1024 Inf-Inf 0/0

53 Type 변환 자동 type 변환 x<-c(1,2,3,4,5) x[2]<- “hat” typeof(x) 모든 요소가
character로 변환 x<-c(1,2,3,4,5) x[2]<- “hat” x x typeof(x) typeof(x) class(x) class(x)

54 Indexing 정수형 벡터를 이용한 indexing v<-100:119 v[5] v[1:5]
v[c(1,6,11,16)] v[-15:-1] # v[-1:-15] 삭제한 벡터를 출력, 하지만 v의 값이 변한 것은 아님 => 변한 결과를 보존하려면, 새로운 변수에 할당

55 Indexing 리스트 성분의 삭제 l<-list(a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9,j=10) l[1:3] l[-7:-1]

56 Indexing 아래를 비교해보자 > m[3] > m[3, ] > m[, 3] m
m <- matrix(data=c(101:112), nrow=3,ncol=4) 아래를 비교해보자 > m[3] > m[3, ] > m[, 3] m m[3] # 3번째 요소를 출력 m[3,4] m[1:2, ] m[1:2, 1:2] m[3:4] m[, 3:4] m[1] <- 1000 m m m[1:2,1:2] <- matrix(c(1001:1004), nrow=2,ncol=2) m

57 Indexing 논리(진리)값의 의한 indexing (for vectors and lists) v<-100:119
rep(c(TRUE,FALSE), 10) v[rep(c(TRUE,FALSE), 10)] v[(v == 103)] 논리형 벡터가 생성 v[(v%%3 == 0)] l[(l>7)] l <- list(a=1, b=2, c=3, d=4, e=5, f=6, g=7, h=8, i=9, j=10) l[1:3]

58 타입판별 is.factor() is.character() is.data.frame() 등

59 타입변환 행렬이나 리스트를 데이터 프레임으로 변환 예

60 타입변환(as.xxx) 기타 as.character() as.matrix() as.data.frame() 알파벳 순서로 지정됨
순서를 m, f로 강제 지정


Download ppt "소프트웨어시스템실습 2강: R 데이터 타입."

Similar presentations


Ads by Google