##14.12.29 월요일 전산실습

 

#교수님 말씀

#데이터 긁어오기 : 컴공

#데이터 헨들링, 설문지, 분석, 보고서 작성 등 : 통계학과

#>> 통계학과 학생이 SQL 능력이 있으면 실력 향상, 취업시 좋은 조건을 갖추는 것?

 

#시험문제는 변수변환 중요

#기존의 변수를 이용해 새로운 변수를 만들어서(이 것도 데이터 헨들링) 계산, 분석!

# 변수 병합, 새로운 변수 만들기 ( 금융권에서 중요, 금융권은 주로 sas사용)

 

#p.82 변수변환(Recoding) : 숫자변수를 범주형(문자변수)로 바꾸는 것

# ex) 키(숫자변수)를 구간으로 나누는것

# 변수 변환 방법 4가지 책에 나와있음. 시험에선 어떤 것이든 아무거나 사용해도 가능.

 

 

##실습내용##

 

#월드95파일로 p.83의 변수변환하기, 3가지 방법사용

world95<-read.xlsx("D:/R/world95_R2.xlsx",1, header=T)

x<-world95$lifeexpf

 

#factor 집단 구분변수, 요인으로 만들기 (수치자료를 범주화!)

#p.83 밑에 트루,펄스 논리 연산 읽어보기


cat.lifeexpf1<-(x>=0)+(x>70)+(x>80)
cat.lifeexpf1<-factor(cat.lifeexpf,labels=c("하","중","상"))
cat.lifeexpf1

 

 

cat.lifeexpf2<-(x<=90)+(x<=80)+(x<70)
cat.lifeexpf2<-factor(cat.lifeexpf,labels=c("상","중","하"))
cat.lifeexpf2

 

 

cat.lifeexpf3<-1*(x>=0 & x<70)+2*(x>=70 & x<=80)+3*(x>80)
cat.lifeexpf3<-factor(cat.lifeexpf,labels=c("하","중","상"))
cat.lifeexpf3

 

 

summary(cat.lifeexpf1)
하 중 상
39 60 10

summary(cat.lifeexpf2)
상 중 하
39 60 10

summary(cat.lifeexpf3)
하 중 상
39 60 10

 

#새로 만든 상중하 변수를 world95 옆에 붙이기 ( cbind 이용)

 

world95_11<-cbind(world95,cat.lifeexpf3)

 

#3.1.6 결측값 p.84

summary(world95_11$lifeexpf)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.
  43.00   67.00   74.00   70.16   78.00   82.00

is.na(world95_11$lifeexpf)
is.na(world95_11$calories)

 

#결측값을 . 으로 설정하는 옵션 추가해서 다시 부르기 (p.49)

#xlsx라서 na.strings 옵션 적용이 안됨? 그래서 csv로 바꿔서 저장하고 불러서 해보기?

 

 

#p.86 연산자 (산비논, 산술 비교 논리 연산자)
# %in% 연산자는 주어진 벡터에 특정 값이 포함되어 있는지를 확인할 때 유용
# 객체의 값과 동일하면 TRUE, 아니면 FALSE

world95_100<-read.csv("D:/R/world95.csv", header=TRUE,na.strings=".")
world95_100

 

world95_100$calories
[1]   NA 3113   NA 3216 3495   NA   NA 2021   NA   NA   NA 1916   NA 2375
 [15] 2751   NA 2288 1932 2166 2217 3482 2036 2581 2639 2598 2808   NA   NA
 [29] 3632 3628 2359 2531 3336 2317   NA 1667 3253 3465 2383   NA   NA 3443
 [43] 3825 2235 2013 2247   NA 3644   NA 2229 2750 3181 2887 3778   NA 3504
 [57] 2956 2634 2163 3195   NA   NA 2382 3324   NA 2774 3052   NA   NA 3151
 [71] 3362 2265 2312 3326   NA   NA 2539 2757 2186 2375   NA   NA 3155   NA
 [85] 1971   NA 2874 2369 3198 1906   NA 3572 2960 3562   NA   NA 2206 2316
 [99] 3236   NA 3149 3671 2153   NA 2653   NA 2582 2233 2077


summary(world95_100$calories)
Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's
   1667    2256    2653    2754    3226    3825      34


mean(world95_100$calories)
[1] NA

 

is.na(world95_100$calories)
 [1]  TRUE FALSE  TRUE FALSE FALSE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE FALSE
 [13]  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
 [25] FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
 [37] FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
 [49]  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
 [61]  TRUE  TRUE FALSE FALSE  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE
 [73] FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE
 [85] FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE  TRUE
 [97] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE
[109] FALSE

 

mean(world95_100$calories, na.rm=TRUE) #결측값 제외하는 옵션 na.rm=TRUE

[1] 2753.827

## p.92 3.3 데이터 프레임 다루기 >> 시험!

 

# transform() 함수!!

world95<-read.xlsx("D:/R/world95_R2.xlsx",1, header=T)
#world95 다시부르기


mean_lifeexp<-(world95$lifeexpm+world95$lifeexpm)/2
mean_lifeexp

world95<-transform(world95, mean_lifeexp=(world95$lifeexpm+world95$lifeexpm)/2)
#데이터프레임 끝에 새로운 변수를 추가(남녀 평균수명)

 

world95$mean_lifeexp=(world95$lifeexpm+world95$lifeexpm)/2
#데이터프레임 끝에 새로운 변수를 추가

 

world95$type[world95$mean_lifeexp>65]="상"
world95$type[world95$mean_lifeexp<=65]="하"
#65기준으로 상하로 나누어서 맨끝에 type이라는 변수를 추가

 

#p.94 데이터 변환후 factor로 바꾸기? 공부


#p.94 within 연습
world95<-within(world95,{
type<-character(0)
type[world95$mean_lifeexp<=65]="하"
type[world95$mean_lifeexp>65]="상"
type=factor(type, level=c("하","상"))
})

 

 

 

 

program1.R

 

world95.csv

 

#world95.csv   csv파일!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'프로그래밍, 통계학 > R(전산실습)' 카테고리의 다른 글

2014.12.31.수요일 전산실습  (0) 2014.12.31
2014.12.30.화요일  (0) 2014.12.30
14.12.26 금요일 전산실습  (0) 2014.12.26
2014.12.24.수요일 전산실습  (0) 2014.12.24
2014.12.23(결석수업)자료  (0) 2014.12.24
블로그 이미지

테시리

,