데이터1
1. 개념
데이터는 열은 측정변수, 행은 조사 개체의 관측값으로 이루어진 행렬 개념
•통계소프트웨어 사용 시 반드시 열에는 변수, 행은 개체로 이루어져 있어야 한다.
•동일 변수는 반드시 한 줄에 들어가 있어야 한다. 예를 들어 남자3명, 여자 2명의 통계학 점수의 차이를 보고 싶다면 엑셀에서는 다음과 같이 입력하여도 분석이 가능하다.
--->
그러나 통계소프트웨어 1개 변수 1개 열 로직에 의해 다음과 같이 입력하여 분석한다
•성별변수, 통계학 점수 변수 - 2개임
•변수=확률변수 : (기호) X=점수 (x1 = 85,x2 = 92,...,x5 = 88) , G=성별 (g1 = M, g2 = M, . . . , g5 = F )
score<-c(85,92,81,89,88)gender<-c(rep('Male',3),rep('Female',2))cbind(score,gender)
2.변수의 종류
1) 데이터 분석
데이터 분석에서는 측정형, 범주형으로 나누고 일반적으로 서열 척도는 측정형으로 간주하여 분석한다.
1
(1) 측정형 metric, quantitative 변수 : 숫자로 측정 가능한 변수 - 성적, 소득, 키, 몸무게
•비율 ratio 척도 : 배수 개념이 적절한 변수 - 대부분의 측정형 변수
•구간 interval 척도 : 배수 개념이 없음 - 온도, IQ
(2)범주형 non-metric, qualititive 변수 : 개체를 분류하기 위한 변수
•명목 nominal 척도 : 성별, 거주지역, 직업군
•순서 , 서열 ordinal 척도 : 개체의 등급 분류 (예) 알파벳 학점, 5점 리커트 척도 - 측정형 변수로 분석
2) 시간적 개념
(1) 시계열 time series, longitudinal - 계량경제 모형 econometric
변수가 시간적 흐름을 가짐 : xt (예) 일별 KOSPI지수
(2)횡단 자료 cross-sectional - 일점 시점의 데이터
3) R 에서 데이터 타입
•data.frame() : 통계분석 함수를 이용하여 다양한 분석이 가능
•as.matrix() : 행렬 형식의 데이터, 함수의 대부분을 사용할 수 있음
• ts() : 시계열 데이터
read.csv(), read.table(), read.sas7bdat()를 이용하여 외부 데이터를 불러오면 자동 data.frame이다.
smsa<-read.csv('http://wolfpack.hnu.ac.kr/Stat_Notes/example_data/SMSA_USA.csv')dim(smsa);names(smsa)is.data.frame(smsa)is.matrix(smsa)is.matrix(as.matrix(smsa))
2
•숫자형 변수 : is.numeric(오브젝트) - 확인, as.numeric(오브젝트) - 변경
•문자형 변수 : is.charater(오브젝트) - 확인, as.character(오브젝트) - 변경
문자형 변수 바꾸기
1) 오브젝트에서 관심 단어 위치 찾음
grep('한남',c('대학교','한남','대전'))
2) 문장 중 관심 단어 선택 : substr(문장, 시작위치, 끝나는 위치)
substr('한남대학교 통계학과, 최고!',3,7)
한글도 1 스페이스, 공벡도 1스페이스임
3)단어 변환 sub(‘변경하려는 단어’, ‘변경단어’, ‘문장’)
sub('\\s','.','한남대학교 통계학과, 최고!')sub('','.','한남대학교 통계학과, 최고!')sub(',','.','한남대학교 통계학과, 최고!')sub('최고','만세','한남대학교 통계학과, 최고!')
3
‘\\s’ 는 공백임, ‘’은 공백 아님
4)문장 분리 : strsplit('문장','분리기호 혹은 단어')
strsplit('한남대학교 통계학과, 최고!','\\s')strsplit('한남대학교 통계학과, 최고!',',')strsplit('한남대학교 통계학과, 최고!','')
5) 문장 만들기 : 단어와 오브젝트 연결
paste('X',1:3,sep='')paste('X',1:3,sep='_')paste('오늘은',Sys.Date())
4
6)단어개수 : nchar(‘문장’)
nchar('한남대학교 최고')
한글 1개, 공백 1개 단어
7) 대소문자 변환
toupper('Abc')tolower('Abc')
문자 데이터(예 주소) 중 일부 단어(읍면동)만 가져오기
SMSA 시 이름 데이터는 도시 이름과 주(state) 이름이 ,로 분리되어 있다. city_name 변수를 도시 이름과 주 이름으로 분리하여 2개 변수로 만들어 보자.
head(smsa$city_name,3)head(strsplit(as.character(smsa$city_name),','),3)
as.character() 함수를 이용하여 문자형 변수로 전환하고 콤마(,)에 의해 분리된다. 문제를 나누어진 문장을 위치별로 저장할 수 없다는 단점이 있다.
여전히 문제다. 위치 지정이 안된다.
5
8) str_sub() 함수 이용 : str_sub(문장,시작위치, 끝 위치)
substr() 함수와 동일하나 음의 위치가 가능하다. 음의 의미는 뒤고 부터 가능함
#install.packages('stringr')library(stringr)str_sub('한남대학교 통계학과, 최고!',-3,-1)
state.name<-str_sub(smsa$city_name,-2,-1)head(state.name,3)
9) str_split() 함수 이용 : str_split(문장,‘분리기호’,n=나누는 개수)
strsplit() 함수와 동일하지만 나누는 개수를 지정할 수 있음
library(stringr)head(str_split(smsa$city_name,',',n=2),3)
여전히 데이터 활용 가능하지 않음
10)str_split_fixed() 함수 이용 : str_split_fixed(문장,‘분리기호’,n=나누는 개수)
str_split() 함수와 동일하지만 행렬로 저장가능하다.
library(stringr)city.name<-str_split_fixed(smsa$city_name,',',n=2)city.name[1,]
6