R을 활용한 기초통계 2019년 3월 14일 (목) 김 철 기
사전 학습 함수(function) 통계 처리나 데이터 분석은 복잡한 이론과 수식을 동반할 뿐 아니라 반복적인 작업을 계속 해야 할 때가 많기 때문에 자주 사용되는 기능을 함수(function)로 만들어 간단히 재사용.
사전 학습 함수(function)의 예제 숫자와 반올림 자릿수를 입력 항목으로 받아 반올림하는 round 함수를 실행한 결과
사전 학습 주석(comment) 주석(comment)이란 프로그램을 실행할 때 코드로 인식하지 않고 무시하는 부분을 의미하며, R에서는 ‘#’ 기호를 이용해 이 기호 뒤의 내용을 주석으로 처리할 수 있음.
사전 학습 R은 대소문자를 구분합니다. R은 대소문자를 구분하기 때문에 객체 이름을 정의하거나 함수를 호출할 때 대소문자에 주의해야 함. 객체의 이름은 R이 실행하는 운영체제와 사용 언어에 따라 조금씩 다르지만 일반적으로 문자, 숫자, ‘_’, ‘.’의 조합으로 지을 수 있으며, 첫 글자는 문자나 ‘.’으로 시작 가능. 단, ‘.’으로 시작할 경우 두번째 문자에는 숫자가 올 수 없으며 이름의 길이에는 제한이 없음.
사전 학습 프롬프트(prompt) 프롬프트(prompt)란 시스템이 명령어를 수행할 준비가 됐음을 표시하는 기호임. R은 명령어를 받을 준비가 되면 콘솔(console)에 “>” 기호를 출력한 후 커서를 깜박임.
사전 학습 R은 사용자가 입력한 명령어가 종료되지 않았다고 판단될 때는 [Enter]를 누르더라도 + 기호를 출력한 후 추가적인 입력을 기다림. 보통 괄호나 따옴표가 안 닫히는 경우에 발생함.
사전 학습 R 스튜디오의 소스 편집 창
R에서의 데이터 관리
데이터 입출력 할당(Assignment) 변수에 값을 배정하는 것 R에서는 =, <-, <<- 를 사용 가능 그러나 <-를 사용할 것! 할당된 객체는 메모리를 차지 rm() 불필요한 객체를 메모리에서 제거
데이터 입출력 키보드 입력 직접 입력: R의 자체 편집기 이용 # 처음부터 새로 데이터 프레임 생성 age <- c(25, 30, 56) # 편집기를 이용한 데이터 입력 mydata <- data.frame(age=numeric(0), gender=character(0), weight=numeric(0)) mydata <- edit(mydata)
데이터 입출력 파일 입력 Import from: csv text file 각종 파일을 불러 읽어 들임 file(), url() 패키지를 이용: Excel, Database, XML, SPSS, SAS 등 Import from: csv text file Exporting data: Tab Delimited Text File mydata <- read.table("c:/mydata.csv", header=TRUE, sep=",", row.names="id") write.table(mydata, "c:/mydata.txt", sep="\t")
데이터 구조의 기본 – 벡터(vector) 벡터는 R의 가장 기본적인 구조로서 일반적인 1차원 배열 형태를 띰. 벡터의 길이는 별도의 선언없이 요소를 추가한 만큼 늘어나며, 추가하는 요소는 모두 같은 데이터 타입이어야 함. 벡터의 생성 벡터는 “c”(combine) 함수를 통해 생성함 벡터는 한 가지 데이터 타입만 가질 수 있기 때문에 숫자와 문자를 함께 담으면 숫자를 문자로 변환한 후 문자 벡터로 생성함.
데이터 구조의 기본 – 벡터(vector) 벡터는 R의 가장 기본적인 구조로서 일반적인 1차원 배열 형태를 띰. 벡터의 길이는 별도의 선언없이 요소를 추가한 만큼 늘어나며, 추가하는 요소는 모두 같은 데이터 타입이어야 함. 벡터의 생성 벡터는 “c”(combine) 함수를 통해 생성함 벡터는 한 가지 데이터 타입만 가질 수 있기 때문에 숫자와 문자를 함께 담으면 숫자를 문자로 변환한 후 문자 벡터로 생성함.
데이터 구조의 기본 – 벡터(vector)
데이터 구조의 기본 – 벡터(vector)
데이터 구조의 기본 – 벡터(vector) 숫자 1과 벡터 c(1)은 같다? 따라서 한 개의 숫자나 문자를 사용하더라도 벡터임을 인지하고 사용할 것.
벡터에 무엇을 담을까? – 숫자 숫자(numeric) 숫자 벡터는 숫자로만 구성되지만 특별한 숫자들을 표현하기 위해 “Inf”와 “NaN” 문자열이 포함될 수 있음 “Inf”는 무한대(Infinite)를 의미하고, “NaN”은 “Not a Number”의 약자로서 수학적으로 정의되지 않은 수식 결과 등으로 인해 숫자로 표현될 수 없는 값이 발생할 때 사용됨 1을 0으로 나눈 값은 Inf(양의 무한대), -1을 0으로 나눈 값은 –Inf(음의 무한대), 0/0은 NaN으로 생성됨 숫자 벡터 내의 이러한 값들은 수식을 계산할 때 오류나 잘못된 결과를 초래하므로 제거 또는 무시하거나 다른 임의의 값으로 대체한 후 사용해야 됨.
벡터에 무엇을 담을까? – 숫자
벡터에 무엇을 담을까? – 숫자
벡터에 무엇을 담을까? – 숫자
벡터에 무엇을 담을까? – 논리 논리(logical) 성공 여부, 합격 여부 등을 표현할 때는 논리(logical) 타입을 사용할 수 있으며, TRUE, FALSE 또는 T, F로 표현 만약 소문자로 쓰거나 따옴표(“ ”)와 함께 사용하면 논리형으로 인식하지 않음 역변환은 “!” 연산자를 사용 논리값과 숫자값의 관계 R의 논리값은 내부적으로 0은 FALSE, 그 밖의 숫자는 TRUE로 인식. 반대로 논리 값을 숫자 값으로 변환할 때는 FALSE는 0, TRUE는 1로 변환됨
벡터에 무엇을 담을까? – 논리
벡터에 무엇을 담을까? – 논리
벡터에 무엇을 담을까? – 논리
벡터에 무엇을 담을까? – 논리
벡터에 무엇을 담을까? – 문자열 문자열(string) 이름, 제품명 등을 표현하고자 할 때는 “ “ 또는 ‘ ‘ 를 활용해 문자열을 표현 문자열 다루기 데이터에 대문자가 섞여 있어 소문자로 통일하거나, 문자열의 특정 위치를 추출하는 등 분석 과정에서 문자열을 조작해야 할 경우 R에서 제공하는 다양한 함수를 활용해 해결가능
벡터에 무엇을 담을까? – 문자열
벡터에 무엇을 담을까? – 문자열
벡터에 무엇을 담을까? – 팩터 팩터(factor) 변수가 명목변수(nominal or categorical)일 때 사용 각 항목은 [1…k] 범위의 숫자 vector로 인식 factor() 및 ordered() 함수의 option을 통해 문자와 순서 사이의 대응관계를 조절 가능 factor를 이용해서 value label을 만들 수도 있음. Nominal 데이터는 factor(), ordinal 데이터는 ordered() 이용 서열을 가지는 경우도 있음: 예) 등수(ranking) 서열형 데이터 서열이 없으면? 명목형 데이터
벡터에 무엇을 담을까? – 팩터 팩터(factor) 변수가 명목변수(nominal or categorical)일 때 사용 각 항목은 [1…k] 범위의 숫자 vector로 인식 factor() 및 ordered() 함수의 option을 통해 문자와 순서 사이의 대응관계를 조절 가능 factor를 이용해서 value label을 만들 수도 있음. Nominal 데이터는 factor(), ordinal 데이터는 ordered() 이용 서열을 가지는 경우도 있음: 예) 리커트(Likert)척도 기본적으로 서열형 데이터이나 통계분석시 등간척도로 간주하고 처리. 서열이 없으면? 명목형 데이터
벡터에 무엇을 담을까? – 팩터 R에서 팩터는 벡터에 추가 정보가 더해진 것임. 추가 정보는 벡터의 값 가운데 겹치지 않는 값의 기록인 레벨(level)로 구성되어 있음. 팩터에 사용되는 함수로는 tapply(), split(), by()가 있음. 새 레벨을 추가할 수도 있음.
벡터에 무엇을 담을까? – 팩터 첫 번째: 레벨 2의 값(사과) 두 번째: 레벨 1의 값(복숭아) 세 번째: 레벨 2의 값(사과) 네 번째: 레벨 3의 값(오렌지) 다섯 번째: 레벨 2의 값(사과) 여섯 번째: 레벨 3의 값(오렌지) 일곱 번째: 레벨 1의 값(복숭아) 문자
벡터에 무엇을 담을까? – 팩터
벡터에 무엇을 담을까? – 팩터 Factor에 유용한 함수 tapply() Vector를 그룹별로 나눈 후 지정한 함수를 적용
벡터에 무엇을 담을까? – 팩터 Factor에 유용한 함수 split() split(x, f): x를 그룹별로 나눔(분리시킴)
R에서의 데이터 종류 6가지 기본 자료형 문자형(character): 문자, 문자열 수치형(numeric) 정수(integer): 1L, 20L (L부호는 정수형으로 데이터를 저장하도록 R에게 일러줌) 실수(double): 1, 20, 3.14, 2.1 복소수형(complex): 실수(real number)+허수(imaginary number) 논리형(logical): TRUE(T, 1), FALSE(F, 0)
R에서의 데이터 종류 특수한 형태의 값 NULL: 데이터의 값이 존재하지 않는다는 의미이다. NA(Not Available): missing value, 결측값, 손실된 값으로 값이 없음을 의미한다. 하나의 요소의 의미 NaN(Not a number): 수학적으로 정의되지 않은 값(0/0) Inf, -Inf: 무한대(1/0, -1/0) 자료형 확인함수 mode(), typeof(): 자료형 확인
Reference https://jeongchul.tistory.com/477
감사합니다!