반응형

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
Posted by 마르띤
,