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

Slides:



Advertisements
Similar presentations
Ⅰ. 연산자 Ⅱ. 제어 구조. 연산자 : 할당 연산자 - 사용자가 정의한 변수에 임의의 값을 저장하는 기능 strvar = strVar1+ “ Hello ”
Advertisements

Chapter 12. 배열. 배열  동일한 항목들이 동일한 크기로 연속적으로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는 자료 구조.
6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
1 08 배열. 한국대학교 객체지향연구소 2 C 로 배우는 프로그래밍 기초 2 nd Edition 배열  동일한 자료유형의 여러 변수를 일괄 선언  연속적인 항목들이 동일한 크기로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는.
1. 2 차원 배열  배열은 동일한 데이터 유형으로 여러 개의 변수를 사용할 경우 같은 이 름으로 지정하여 간편하게 사용할 수 있도록 하는 것으로서 앞에서 1 차원 배열을 공부하였습니다.  2 차원 배열은 바둑판을 생각하면 되며, 1 차원 배열에서 사용하는 첨자를 2.
출석수업 과제 – 총 5문제, 10월 25일 제출 정보통계학과 장영재 교수.
YACC 응용 예 Desktop Calculator.
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
최윤정 Java 프로그래밍 클래스 상속 최윤정
Excel 일차 강사 : 박영민.
연결리스트(linked list).
제 9 장 구조체와 공용체.
7장 배열 ②.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 12. 포인터의 이해.
5장 배열 작성자 : 변재현.
Lesson 5. 레퍼런스 데이터형.
07 그룹 함수 그룹 함수의 개념 그룹 함수의 종류 데이터 그룹 생성 HAVING 절.
5장. 참조 타입.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
Ch1 MATLAB Environment 제1장 매트랩 환경.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
23장. 구조체와 사용자 정의 자료형 2.
Tail-recursive Function, High-order Function
프로그래밍 랩 – 7주 리스트.
공학컴퓨터프로그래밍 Python 염익준 교수.
11장. 1차원 배열.
C#.
13. 연산자 오버로딩.
JA A V W. 03.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
인터넷응용프로그래밍 JavaScript(Intro).
박성진 컴퓨터 프로그래밍 기초 [09] 배열 part 1 박성진
13. 포인터와 배열! 함께 이해하기 IT응용시스템공학과 김 형 진 교수.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
Report #3 - due: 4/6 100*100의 2개의 희소 행렬 A, B를 전달 받아서 이들의 덧셈을 구하고, 그 결과의 행렬 C를 반환하는 add_sparse_matrix(A, B, C)를 다음과 같이 작성하라. 희소 행렬은 sparse_matrix 타입으로 표현된다.
Java의 정석 제 5 장 배 열 Java 정석 남궁성 강의 의
Mar 김 준 영 (juny924@gmail.com)
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
기계학습과 R 실습.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
포인터 1차원 배열과 포인터 2차원 배열과 포인터 문자열 배열과 포인터 포인터 배열
에어 조건문.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
2장. 변수와 타입.
8주차: Strings, Arrays and Pointers
기말 프로젝트 계획 MVC 패턴 기반 웹 애플리케이션 개발 프로젝트명 : 팀명 : 팀원 :
CHAP 21. 전화, SMS, 주소록.
2014년 가을학기 손시운 지도 교수: 문양세 교수님 데이터 프레임 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
데이터 동적 할당 Collection class.
에어 PHP 입문.
클래스 : 기능 CHAPTER 7 Section 1 생성자(Constructor)
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
Chapter 10 데이터 검색1.
컴퓨팅 사고력을 키우는 SW 교육 : 스크래치 [강의교안 이용 안내] 본 강의교안의 저작권은 저자인 고광일과 한빛아카데미㈜에 있습니다. 이 자료는 강의 보조자료로 제공되는 것으로 무단으로 전제하거나 배포하는 것을 금합니다.
구조체(struct)와 공용체(union)
16장. 변수, 연산자, 사용자 정의 함수 변수 배열과 객체 연산자 함수.
Numerical Analysis Programming using NRs
Static과 const 선언 조 병 규 한 국 교 통 대 학 교 SQ Lab..
제 4 장 Record.
R을 활용한 기초통계 2019년 3월 14일 (목) 김 철 기.
2014년 가을학기 손시운 지도 교수: 문양세 교수님 행렬과 배열 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
어서와 C언어는 처음이지 제21장.
 6장. SQL 쿼리.
13. 포인터와 배열! 함께 이해하기.
Visual Basic .NET 기초문법.
C++ Espresso 제15장 STL 알고리즘.
6 객체.
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

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

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

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

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

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

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

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

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

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

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

복합 데이터 구조 타입

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)

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

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”)

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

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)]

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

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

Vectors 각 원소에 이름 부여 가능

Vectors 특정요소 제외

Vectors

Vectors

Vectors

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),]

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]

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

Matrix 행과 열에 이름 부여

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

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

Matrix

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

Matrix

Matrix 전치행렬

Matrix 행과 열의 개수 구하기

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]]

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

List 리스트 내의 리스트

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

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

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”]

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

Data Frame z는 문자열 형태

Data Frame 컬럼 추가

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

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

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

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

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

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

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

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

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

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)

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

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]

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

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]

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

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

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