a<-read.csv("C:\\Users\\82102\\Desktop\\interview\\test1.csv", header = T)
-a의 형태를 파악해보자 일단 대략 어떤 파일인지 한번 보자. 10행 까지 파일을 본다
head(a, 10)
## X id age gender wage jobsatisfaction
## 1 1 1 28 0 3616.072 94.38872
## 2 2 2 20 1 2515.079 81.02597
## 3 3 3 47 0 3612.614 53.86118
## 4 4 4 28 1 3659.233 71.61188
## 5 5 5 2 0 2992.600 35.02129
## 6 6 6 25 1 2812.055 90.92546
## 7 7 7 27 0 3063.561 70.09062
## 8 8 8 6 1 3108.089 102.81495
## 9 9 9 23 0 2694.920 99.26116
## 10 10 10 46 1 2930.867 90.37452
-해당 파일을 보니 id이외에 1열에 x라는 변수가 있다. 별로 쓸모가 없어 보이니 해당 열을 없애보자.
a<-a[,-1]
head(a, 10)
## id age gender wage jobsatisfaction
## 1 1 28 0 3616.072 94.38872
## 2 2 20 1 2515.079 81.02597
## 3 3 47 0 3612.614 53.86118
## 4 4 28 1 3659.233 71.61188
## 5 5 2 0 2992.600 35.02129
## 6 6 25 1 2812.055 90.92546
## 7 7 27 0 3063.561 70.09062
## 8 8 6 1 3108.089 102.81495
## 9 9 23 0 2694.920 99.26116
## 10 10 46 1 2930.867 90.37452
-다음으로 해당 파일의 변수들의 타입을 보자. dataframe의 특정 변수 선택은 $을 쓴다음 변수명을 입력하면 된다. 아래 파일을 보면 성별(gender)는 명목척도인데 연속형 변수로 되어 있음을 알 수 있다.
typeof(a$id)
## [1] "integer"
typeof(a$age)
## [1] "integer"
typeof(a$gender)
## [1] "integer"
typeof(a$wage)
## [1] "double"
typeof(a$jobsatisfaction)
## [1] "double"
-성별을 factor로 바꿔보. 남자는 0 여자는 1로 되어 있으니 이걸 “남자”, “여자”로 바꿔보자
a$gender2<-factor(a$gender, levels = c(0,1), labels = c("남자", "여자"))
head(a$gender2, 10)
## [1] 남자 여자 남자 여자 남자 여자 남자 여자 남자 여자
## Levels: 남자 여자
-만약 특정 조건에 맞게 데이터를 새로만들고 싶다면 다음과 같이 할 수 있다. 남자만 있는 파일을 다음과 같이 만들었다.
a1<-subset(a, a$gender2=="남자")
head(a1, 10)
## id age gender wage jobsatisfaction gender2
## 1 1 28 0 3616.072 94.38872 남자
## 3 3 47 0 3612.614 53.86118 남자
## 5 5 2 0 2992.600 35.02129 남자
## 7 7 27 0 3063.561 70.09062 남자
## 9 9 23 0 2694.920 99.26116 남자
## 11 11 20 0 2131.963 83.56018 남자
## 13 13 31 0 2378.929 58.65030 남자
## 15 15 34 0 3214.067 84.27714 남자
## 17 17 2 0 2474.952 92.63049 남자
## 19 19 37 0 3372.374 92.97752 남자
-if구문을 써서 다른 방식으로 변수를 추가 하거나 새로운 data를 만들수 있다. 임금이 3000넘는 사람을 고소득자 나머지는 저소득자로 새로운 변수를 만들 수 있다. 또 factor의 빈도를 알기 위해서 table 함수를 쓸 수 있다.
a$wage_category<-ifelse(a$wage>3000, "고소득자", "저소득자")
head(a$wage_category,5)
## [1] "고소득자" "저소득자" "고소득자" "고소득자" "저소득자"
table(a$wage_category)
##
## 고소득자 저소득자
## 86 114
-table함수는 조건을 나누어 만들 수 있다. 카이제곱검정후 표 만들때 유용하다. 성별이 또다른 범주 변수니 두 변수로 표를 만들 수 있다.
table(a$gender2, a$wage_category)
##
## 고소득자 저소득자
## 남자 38 62
## 여자 48 52