반응형
Beer 연습용 데이터에는 ID, 구매 카테고리, 브랜드, 구매일자, 총금액, 구매횟수, 가격, 맛, 연령, 성별 등의 데이터가 들어가 있다.
> setwd("D:/temp/r_temp")
> beer<-read.csv('beer.csv',stringsAsFactors = F)
> str(beer)
'data.frame': 26281 obs. of 10 variables:
$ CustomerID : int 867616 867616 7464358 1518180 5132322 1284613 4359610 6510791 5286631 6935836 ...
$ ProductCategory: chr "Beer" "Beer" "Beer" "Beer" ...
$ BeerBrand : chr "Cass" "Cass" "Cass" "Hite" ...
$ PurchaseDate : int 20070113 20070113 20070103 20071010 20070501 20070310 20070401 20071223 20070721 20071104 ...
$ DollarAmount : int 26800 26800 13400 7300 7300 7300 5840 17520 7300 7300 ...
$ NumOfItems : int 2 2 1 1 1 1 1 3 1 1 ...
$ Price : int 13400 13400 13400 7300 7300 7300 7300 7300 7300 7300 ...
$ Taste : chr "Bitter" "Bitter" "Bitter" "Cool" ...
$ Age : int 35 35 29 32 57 54 40 40 34 44 ...
$ Gender : chr "F" "F" "F" "F" ...
> names(beer)
[1] "CustomerID" "ProductCategory" "BeerBrand" "PurchaseDate"
[5] "DollarAmount" "NumOfItems" "Price" "Taste"
[9] "Age"
구매일과 구매횟수로 Plot 그래프를 그려보면,
> summary(beer$NumOfItems)
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.00 1.00 1.00 1.19 1.00 180.00
> range(beer$NumOfItems)
[1] 1 180
> plot(beer$PurchaseDate,beer$NumOfItems)
Outlier에 해당하는 극단값이 있어 그래프 보기가 다시 불편하므로, 1회당 구매 금액을 PA값에 집어넣으면
> pa<-beer$DollarAmount/beer$NumOfItems
> plot(beer$PurchaseDate,pa)
-> 여전히 잘 안보임. 더 좋은 그래프나 다른 방식으로 보여줄 수 있는지 고민 필요함.
> hist(beer$PurchaseDate)
평균, 분산, 표준편차도 구해보고,
> mean(beer$DollarAmount)
[1] 13828.43
> var(beer$DollarAmount)
[1] 524584703
> sd(beer$DollarAmount)
[1] 22903.81
Beer$taste는 각각 Bitter/Cool/Soft라는 범주형 데이터를 가지고 있으므로 table 함수 적용 후 barplot를 그릴 수 있다.
> table(beer$Taste)
Bitter Cool Soft
3234 11540 11507
> barplot(table(beer$Taste))
성별도 비슷하게 구할 수 있다.
> table(beer$Gender)
F M
8275 12952 5054
> table(beer$Gender)/18006
F M
0.4595690 0.7193158 0.2806842
> barplot(table(beer$Gender))
null값이 많으므로 exclude를 사용하면
> table(beer$Gender,exclude="")/sum(table(beer$Gender,exclude=""))
F M
0.7193158 0.2806842
> m<-table(beer$Gender,exclude="")
> barplot(m)
Gender와 Taste를 table값으로 묶어, mosaicplot도 만들고,
> gender_taste=table(beer$Gender,beer$Taste)
> mosaicplot(gender_taste)
->null값을 제외하고 보고싶은데, 아직 방법을 모르겠음. 공부가 더 필요함.
Subset 함수를 이용하여 원하는 변수를 묶을 수 있다. &는 and, |는 or 개념
> m_and_age=subset(beer,beer$Gender=='M'&beer$Age>30)
> head(m_and_age)
CustomerID ProductCategory BeerBrand PurchaseDate DollarAmount NumOfItems Price
7 4359610 Beer Hite 20070401 5840 1 7300
14 4317050 Beer Hite 20070921 21900 3 7300
15 4874758 Beer Hite 20070206 7300 1 7300
18 1333660 Beer Hite 20071030 7300 1 7300
23 5478004 Beer Hite 20070325 7300 1 7300
29 944833 Beer Hite 20070808 7300 1 7300
Taste Age Gender
7 Cool 40 M
14 Cool 66 M
15 Cool 59 M
18 Cool 35 M
23 Cool 50 M
29 Cool 43 M
> dim(m_and_age)
[1] 3923 10
> m_or_age=subset(beer,beer$Gender=='M'|beer$Age>30)
> head(m_or_age)
CustomerID ProductCategory BeerBrand PurchaseDate DollarAmount NumOfItems Price
1 867616 Beer Cass 20070113 26800 2 13400
2 867616 Beer Cass 20070113 26800 2 13400
4 1518180 Beer Hite 20071010 7300 1 7300
5 5132322 Beer Hite 20070501 7300 1 7300
6 1284613 Beer Hite 20070310 7300 1 7300
7 4359610 Beer Hite 20070401 5840 1 7300
Taste Age Gender
1 Bitter 35 F
2 Bitter 35 F
4 Cool 32 F
5 Cool 57 F
6 Cool 54 F
7 Cool 40 M
> dim(m_or_age)
[1] 14485 10
수치형 데이터인 Age로 히스트그램을 만들고,
> hist(beer$Age)
Bin을 50개로 나눌 수도 있다.
> hist(beer$Age,breaks=50)
반응형
'Python, R 분석과 프로그래밍' 카테고리의 다른 글
R 회귀분석 (0) | 2016.02.28 |
---|---|
[미완성] 중국 sohu 크롤링 연습 (0) | 2016.02.20 |
subset, mosiacplot, hist, var,sd (0) | 2015.10.31 |
dim, str, plot (0) | 2015.10.29 |
도수분포표와 히스토그램 (0) | 2015.08.12 |