使用R进行商业调查

调查某个酒馆的食品销售情况,具体的数据报错在menus.csv文件中。

加载数据以及用于数据操作以及绘图的程序包

> library(dplyr)
> library(ggplot2)
> menus <- read.csv("code/AmosWin/Chapter04/menus.csv",stringsAsFactors = FALSE,colClasses = c("factor","Date","numeric"))
> menus %>% names
[1] "品名"   "日期"   "销售额"
> head(menus)
    品名       日期 销售额
1 关东煮 2015-03-01   4046
2 关东煮 2015-03-02   3437
3 关东煮 2015-03-03   3191
4 关东煮 2015-03-04   3499
5 关东煮 2015-03-05   3536
6 关东煮 2015-03-06   3841
筛选出饭团的销售额

> fantuan <- menus %>% filter(品名 == "饭团")
> ggplot(fantuan,aes(日期,销售额))+geom_line()+scale_x_date()+ggtitle("饭团的销售额")
筛选出炒饭的销售额

> chaofan <- menus %>% filter(品名 == "炒饭")
> ggplot(chaofan,aes(日期,销售额))+geom_line()+scale_x_date()+ggtitle("炒饭的销售额")
筛选出各种面条的销售情况

> noodles <- menus %>% filter(品名 %in% c("意大利面","酱汁炒面","乌冬面","拉面","什锦面"))
> ggplot(noodles,aes(日期,销售额))+geom_line()+scale_x_date()+facet_wrap(~品名)+ggtitle("面条的销售额")
筛选牛奶的销售情况
> milk2 <-menus %>% filter(品名 == "牛奶")
> milk2 %>% ggplot(aes(日期,销售额))+geom_line()+scale_x_date()+ggtitle("牛奶销售额")

生成面制品和米制品的散点图矩阵
> install.packages("tidyr")
> library(tidyr)
> noodles2 <- menus %>% filter(品名 %in% c("饭团","味增汤","咖喱","茶泡饭","意大利面","酱汁炒面","乌冬面","什锦面")) %>% select(品名,销售额,日期) %>% spread(品名,销售额)
> noodles2 %>% head
        日期 茶泡饭  饭团 酱汁炒面  咖喱 什锦面 乌冬面 意大利面
1 2015-03-01  12751 23698     8460 15594   6245   8849     5947
2 2015-03-02   8881 19505     7412 10959   4469   6063     5010
3 2015-03-03  10006 19974     7377 12073   5159   6060     5263
4 2015-03-04   9480 18208     6959 12249   4399   6283     5150
5 2015-03-05   9752 19624     6518 11690   4791   7138     4883
6 2015-03-06  12534 23872    10249 16332   6039   9264     6410
> noodles2 [,-1] %>% cor()
              茶泡饭        饭团   酱汁炒面        咖喱     什锦面     乌冬面   意大利面
茶泡饭    1.00000000 -0.00971532  0.6080210  0.81505643  0.5924683  0.6293278  0.6165647
饭团     -0.00971532  1.00000000 -0.5029012 -0.02819566 -0.5041264 -0.4892078 -0.4866258
酱汁炒面  0.60802102 -0.50290122  1.0000000  0.62001363  0.9133528  0.8953787  0.9122944
咖喱      0.81505643 -0.02819566  0.6200136  1.00000000  0.6144427  0.6185421  0.6370305
什锦面    0.59246831 -0.50412641  0.9133528  0.61444273  1.0000000  0.9099195  0.9101794
乌冬面    0.62932779 -0.48920782  0.8953787  0.61854210  0.9099195  1.0000000  0.8979937
意大利面  0.61656471 -0.48662582  0.9122944  0.63703048  0.9101794  0.8979937  1.0000000
> noodles2[,-1] %>% pairs

乌冬面与饭团的散点图
> udon <-menus %>% filter(品名 %in% c("饭团","乌冬面")) %>% spread(品名,销售额)
> udon %>% ggplot(aes(乌冬面, 饭团))+geom_point()+ggtitle("乌冬面和饭团的散点图")

饭团与牛奶的散点图,证实牛奶与饭团的正相关性
> milk <- menus %>% filter(品名 %in% c("饭团","牛奶")) %>% spread(品名,销售额)
> milk %>% ggplot(aes(饭团,牛奶))+geom_point(size=2,color="grey50")+geom_smooth(method = "lm",se=FALSE)+ggtitle("饭团与牛奶的散点图")

证明冰激凌的销售额与气温的正相关性
> icecream <- read.csv("code/AmosWIN/Chapter04/icecream.csv")
> icecream %>% lm(销售量~气温,data =.)

Call:
lm(formula = 销售量 ~ 气温, data = .)

Coefficients:
(Intercept)         气温  
     57.167        5.216  

> icecream %>% ggplot(aes(销售量,气温))+geom_point(size=2)+geom_smooth(method="lm",se=FALSE)

使用R进行简易调查

来看一个简单的调查问卷结果分析:

> survey <- read.csv(file.choose())
> survey
    立场      回答6      回答7
1   顾客   商品齐全     无回答
2   顾客   商品齐全     无回答
3   顾客   商品齐全 传统吉祥物
4   顾客   商品齐全 萌系美少女
5   顾客   商品齐全 萌系美少女
6   顾客   商品齐全 传统吉祥物
7   顾客   商品齐全 萌系美少女
8   顾客   商品齐全 萌系美少女
9   顾客   商品齐全 传统吉祥物
10  顾客   商品齐全     无回答
11  顾客   商品齐全 传统吉祥物
12  顾客   商品齐全     无回答
13  顾客   商品齐全 萌系美少女
14  顾客   商品齐全     无回答
15  顾客   商品齐全 传统吉祥物
16  顾客   商品齐全 传统吉祥物
17  顾客   商品齐全 萌系美少女
18  顾客   商品齐全 萌系美少女
19  店主   商品齐全 萌系美少女
20  店主   商品齐全 萌系美少女
21  店主   商品齐全 萌系美少女
22  店主   商品齐全 萌系美少女
23  店主   商品齐全 萌系美少女
24  店主   商品齐全 萌系美少女
25  店主   商品齐全 萌系美少女
26  店主   商品齐全 萌系美少女
27  店主   商品齐全 萌系美少女
28  店主   商品齐全 萌系美少女
29  店主   商品齐全 萌系美少女
30  店主   商品齐全 萌系美少女
31  店主   商品齐全 萌系美少女
32  店主   商品齐全 萌系美少女
33  店主   商品齐全 萌系美少女
34  店主   商品齐全 萌系美少女
35  店主   商品齐全 萌系美少女
36  店主   商品齐全 萌系美少女
37  店主   商品齐全 萌系美少女
38  店主   商品齐全 萌系美少女
39  店主   商品齐全 萌系美少女
40  店主   商品齐全 萌系美少女
41  店主   商品齐全 萌系美少女
42  店主   商品齐全 萌系美少女
43  店主   商品齐全 萌系美少女
44  店主   商品齐全 萌系美少女
45  店主   商品齐全 萌系美少女
46  店主   商品齐全 萌系美少女
47  店主   商品齐全 萌系美少女
48  店主   商品齐全 萌系美少女
49  店主   商品齐全 萌系美少女
50  店主   商品齐全 萌系美少女
51  店主   商品齐全 萌系美少女
52  店主   商品齐全 萌系美少女
53  店主   商品齐全 萌系美少女
54  店主   商品齐全 萌系美少女
55  店主   商品齐全 萌系美少女
56  店主   商品齐全 萌系美少女
57  店主   商品齐全 萌系美少女
58  店主   商品齐全 萌系美少女
59  店主   商品齐全 萌系美少女
60  店主   商品齐全 萌系美少女
61  顾客       促销 传统吉祥物
62  顾客       促销     无回答
63  顾客       促销 萌系美少女
64  顾客       促销 传统吉祥物
65  顾客       促销     无回答
66  顾客       促销 传统吉祥物
67  顾客       促销 萌系美少女
68  顾客       促销 传统吉祥物
69  顾客       促销 萌系美少女
70  顾客       促销 萌系美少女
71  顾客       促销 传统吉祥物
72  顾客       促销 传统吉祥物
73  顾客       促销 传统吉祥物
74  顾客       促销     无回答
75  顾客       促销 萌系美少女
76  顾客       促销 萌系美少女
77  顾客       促销 萌系美少女
78  顾客       促销 萌系美少女
79  顾客       促销 萌系美少女
80  顾客       促销     无回答
81  顾客       促销     无回答
82  顾客       促销 萌系美少女
83  顾客       促销 萌系美少女
84  顾客       促销 传统吉祥物
85  顾客       促销 传统吉祥物
86  顾客       促销 萌系美少女
87  顾客       促销 传统吉祥物
88  顾客       促销     无回答
89  顾客       促销 传统吉祥物
90  顾客       促销 萌系美少女
91  顾客       促销 传统吉祥物
92  顾客       促销 传统吉祥物
93  顾客       促销     无回答
94  顾客       促销     无回答
95  顾客       促销 传统吉祥物
96  顾客       促销     无回答
97  顾客       促销 传统吉祥物
98  顾客       促销 萌系美少女
99  顾客       促销 萌系美少女
100 店主       促销 萌系美少女
101 店主       促销 萌系美少女
102 店主       促销 萌系美少女
103 店主       促销 萌系美少女
104 店主       促销 萌系美少女
105 店主       促销 萌系美少女
106 店主       促销 萌系美少女
107 店主       促销 萌系美少女
108 店主       促销 萌系美少女
109 店主       促销 萌系美少女
110 店主       促销 萌系美少女
111 顾客 服务态度好 传统吉祥物
112 顾客 服务态度好     无回答
113 顾客 服务态度好 萌系美少女
114 顾客 服务态度好     无回答
115 顾客 服务态度好 传统吉祥物
116 顾客 服务态度好 传统吉祥物
117 顾客 服务态度好 萌系美少女
118 顾客 服务态度好 萌系美少女
119 顾客 服务态度好 传统吉祥物
120 顾客 服务态度好     无回答
121 顾客 服务态度好     无回答
122 顾客 服务态度好     无回答
123 顾客 服务态度好 萌系美少女
124 顾客 服务态度好 萌系美少女
125 顾客 服务态度好 传统吉祥物
126 顾客 服务态度好 萌系美少女
127 顾客 服务态度好 传统吉祥物
128 顾客 服务态度好     无回答
129 顾客 服务态度好 萌系美少女
130 顾客 服务态度好 传统吉祥物
131 顾客 服务态度好     无回答
132 顾客 服务态度好 传统吉祥物
133 顾客 服务态度好 萌系美少女
134 顾客 服务态度好     无回答
135 顾客 服务态度好 传统吉祥物
136 顾客 服务态度好 传统吉祥物
137 顾客 服务态度好 萌系美少女
138 顾客 服务态度好 萌系美少女
139 顾客 服务态度好     无回答
140 顾客 服务态度好     无回答
141 顾客 服务态度好 传统吉祥物
142 顾客 服务态度好 萌系美少女
143 顾客 服务态度好 萌系美少女
144 顾客 服务态度好 萌系美少女
145 顾客 服务态度好 传统吉祥物
146 店主 服务态度好 萌系美少女
147 店主 服务态度好 萌系美少女
148 店主 服务态度好 萌系美少女
149 店主 服务态度好 萌系美少女
150 店主 服务态度好 萌系美少女
151 店主 服务态度好 萌系美少女
152 店主 服务态度好 萌系美少女
153 店主 服务态度好 萌系美少女
154 店主 服务态度好 萌系美少女
155 顾客       活动 传统吉祥物
156 顾客       活动 传统吉祥物
157 顾客       活动     无回答
158 顾客       活动 传统吉祥物
159 顾客       活动     无回答
160 顾客       活动 传统吉祥物
161 顾客       活动 传统吉祥物
162 顾客       活动     无回答
163 顾客       活动 萌系美少女
164 顾客       活动 传统吉祥物
165 顾客       活动     无回答
166 店主       活动 萌系美少女
167 店主       活动 萌系美少女
168 店主       活动 萌系美少女
169 店主       活动 萌系美少女
170 店主       活动 萌系美少女
171 店主       活动 萌系美少女
172 店主       活动 萌系美少女
173 店主       活动 萌系美少女
174 店主       活动 萌系美少女
175 店主       活动 萌系美少女
176 店主       活动 萌系美少女
177 店主       活动 萌系美少女
178 店主       活动 萌系美少女
179 店主       活动 萌系美少女
180 店主       活动 萌系美少女
181 店主       活动 萌系美少女
182 店主       活动 萌系美少女
183 店主       活动 萌系美少女
184 店主       活动 萌系美少女
185 店主       活动 萌系美少女
186 店主       活动 萌系美少女
187 店主       活动 萌系美少女
188 店主       活动 萌系美少女
189 店主       活动 萌系美少女
190 店主       活动 萌系美少女
191 店主       活动 萌系美少女
192 店主       活动 萌系美少女
193 店主       活动 萌系美少女
194 店主       活动 萌系美少女
195 店主       活动 萌系美少女
196 店主       活动 萌系美少女
197 店主       活动 萌系美少女
198 店主       活动 萌系美少女
199 店主       活动 萌系美少女
200 店主       活动 萌系美少女
201 店主       活动 传统吉祥物
202 店主       活动 传统吉祥物
203 店主       活动 传统吉祥物

从中选择出需要调查的关注数据

> survey %>% select(立场,回答6)
    立场      回答6
1   顾客   商品齐全
2   顾客   商品齐全
3   顾客   商品齐全
4   顾客   商品齐全
5   顾客   商品齐全
6   顾客   商品齐全
7   顾客   商品齐全
8   顾客   商品齐全
9   顾客   商品齐全
10  顾客   商品齐全
11  顾客   商品齐全
12  顾客   商品齐全
13  顾客   商品齐全
14  顾客   商品齐全
15  顾客   商品齐全
16  顾客   商品齐全
17  顾客   商品齐全
18  顾客   商品齐全
19  店主   商品齐全
20  店主   商品齐全
21  店主   商品齐全
22  店主   商品齐全
23  店主   商品齐全
24  店主   商品齐全
25  店主   商品齐全
26  店主   商品齐全
27  店主   商品齐全
28  店主   商品齐全
29  店主   商品齐全
30  店主   商品齐全
31  店主   商品齐全
32  店主   商品齐全
33  店主   商品齐全
34  店主   商品齐全
35  店主   商品齐全
36  店主   商品齐全
37  店主   商品齐全
38  店主   商品齐全
39  店主   商品齐全
40  店主   商品齐全
41  店主   商品齐全
42  店主   商品齐全
43  店主   商品齐全
44  店主   商品齐全
45  店主   商品齐全
46  店主   商品齐全
47  店主   商品齐全
48  店主   商品齐全
49  店主   商品齐全
50  店主   商品齐全
51  店主   商品齐全
52  店主   商品齐全
53  店主   商品齐全
54  店主   商品齐全
55  店主   商品齐全
56  店主   商品齐全
57  店主   商品齐全
58  店主   商品齐全
59  店主   商品齐全
60  店主   商品齐全
61  顾客       促销
62  顾客       促销
63  顾客       促销
64  顾客       促销
65  顾客       促销
66  顾客       促销
67  顾客       促销
68  顾客       促销
69  顾客       促销
70  顾客       促销
71  顾客       促销
72  顾客       促销
73  顾客       促销
74  顾客       促销
75  顾客       促销
76  顾客       促销
77  顾客       促销
78  顾客       促销
79  顾客       促销
80  顾客       促销
81  顾客       促销
82  顾客       促销
83  顾客       促销
84  顾客       促销
85  顾客       促销
86  顾客       促销
87  顾客       促销
88  顾客       促销
89  顾客       促销
90  顾客       促销
91  顾客       促销
92  顾客       促销
93  顾客       促销
94  顾客       促销
95  顾客       促销
96  顾客       促销
97  顾客       促销
98  顾客       促销
99  顾客       促销
100 店主       促销
101 店主       促销
102 店主       促销
103 店主       促销
104 店主       促销
105 店主       促销
106 店主       促销
107 店主       促销
108 店主       促销
109 店主       促销
110 店主       促销
111 顾客 服务态度好
112 顾客 服务态度好
113 顾客 服务态度好
114 顾客 服务态度好
115 顾客 服务态度好
116 顾客 服务态度好
117 顾客 服务态度好
118 顾客 服务态度好
119 顾客 服务态度好
120 顾客 服务态度好
121 顾客 服务态度好
122 顾客 服务态度好
123 顾客 服务态度好
124 顾客 服务态度好
125 顾客 服务态度好
126 顾客 服务态度好
127 顾客 服务态度好
128 顾客 服务态度好
129 顾客 服务态度好
130 顾客 服务态度好
131 顾客 服务态度好
132 顾客 服务态度好
133 顾客 服务态度好
134 顾客 服务态度好
135 顾客 服务态度好
136 顾客 服务态度好
137 顾客 服务态度好
138 顾客 服务态度好
139 顾客 服务态度好
140 顾客 服务态度好
141 顾客 服务态度好
142 顾客 服务态度好
143 顾客 服务态度好
144 顾客 服务态度好
145 顾客 服务态度好
146 店主 服务态度好
147 店主 服务态度好
148 店主 服务态度好
149 店主 服务态度好
150 店主 服务态度好
151 店主 服务态度好
152 店主 服务态度好
153 店主 服务态度好
154 店主 服务态度好
155 顾客       活动
156 顾客       活动
157 顾客       活动
158 顾客       活动
159 顾客       活动
160 顾客       活动
161 顾客       活动
162 顾客       活动
163 顾客       活动
164 顾客       活动
165 顾客       活动
166 店主       活动
167 店主       活动
168 店主       活动
169 店主       活动
170 店主       活动
171 店主       活动
172 店主       活动
173 店主       活动
174 店主       活动
175 店主       活动
176 店主       活动
177 店主       活动
178 店主       活动
179 店主       活动
180 店主       活动
181 店主       活动
182 店主       活动
183 店主       活动
184 店主       活动
185 店主       活动
186 店主       活动
187 店主       活动
188 店主       活动
189 店主       活动
190 店主       活动
191 店主       活动
192 店主       活动
193 店主       活动
194 店主       活动
195 店主       活动
196 店主       活动
197 店主       活动
198 店主       活动
199 店主       活动
200 店主       活动
201 店主       活动
202 店主       活动
203 店主       活动

展现数据

> table1 <- survey %>% select(立场,回答6) %>% table;table1
      回答6
立场   促销 服务态度好 活动 商品齐全
  店主   11          9   38       42
  顾客   39         35   11       18
> library(ggplot2)
> table1 %>% as.data.frame %>% ggplot(aes (x=立场,y=Freq, fill=回答6)) + geom_bar(stat="identity") + ylab("人数")

导入用户调查答卷表之后,select出人员类别和对销售有影响的因素,然后使用图形化的方式表达出不同角色的人员对销售决定因素的主观差异。

由上图可见,店主注重商品齐全度和活动,而顾客更看重销售态度和促销活动。

初试用R进行数据统计

需要明了的基础概念:

概率:某个事件出现的可能性;
频率分布表:统计与某数值一致的数据的个数、着这属于某数值范围的数据的个数,然后将这些统计值制成一览表;
直方图:图形化的频率分布表;
平均值(期望值):用总和除以数量就是平均值。
总体:所有应当调查的对象;
样本:总体的一部分;
标准差:衡量数据离散程度的值,代表了数据相对于平均值的离散程度,先求所有差值的平方和,然后初一总数-1后的数值;
离散:也叫误差,数据的离散是有规律的,又被称为数据的分布;
正态分布:数据的离散程度称为分布,其中左右对称且只有少数结果极其偏离期望值的分布则称为正态分布。
95%的数据所在范围:距离平均值2个标准差以内;
显著水平:在实施分析或展开调查钱就确定好的一个量,用作判断基准的概率,1%、5%、10%;
零假设:认为样本均值和总体均值之间的差异只是误差,即认为二者之间不存在差异的假设;
备择假设:认为样本均值和总体均值之间差异超出了误差的范围;
概率不足5%:否定零假设
概率大于5%:保留零假设
均值差异检验:把平均值和总体均值与应当值作对比,判断二者是否在误差范围内。

将excel表格breads.csv导入RStudio

> breads <- read.csv("breads.csv")

计算面包重量的平均值

> mean(breads$weight)
[1] 397.1267

计算面包的标准差

> sd (breads$weight)
[1] 10.92062

输出面包的重量分布的直方图

> hist(breads$weight)


调用t.test函数求得概率值(p-value)
mu=400表示总体均值定义为400(克)
t表示离差统计量,df表示自由度

> t.test (breads$weight,mu=400)

    One Sample t-test

data:  breads$weight
t = -1.4411, df = 29, p-value = 0.1603
alternative hypothesis: true mean is not equal to 400
95 percent confidence interval:
 393.0488 401.2045
sample estimates:
mean of x 
 397.1267 

搭建R语言环境

R是一套完整的数据处理、计算和制图软件系统。其功能包括:数据存储和处理系统;数组运算工具(其向量、矩阵运算方面功能尤其强大);完整连贯的统计分析工具;优秀的统计制图功能;简便而强大的编程语言:可操纵数据的输入和输出,可实现分支、循环,用户可自定义功能。
与其说R是一种统计软件,还不如说R是一种数学计算的环境,因为R并不是仅仅提供若干统计程序、使用者只需指定数据库和若干参数便可进行一个统计分析。R的思想是:它可以提供一些集成的统计工具,但更大量的是它提供各种数学计算、统计计算的函数,从而使使用者能灵活机动的进行数据分析,甚至创造出符合需要的新的统计计算方法。
RStudio是一款跨平台的R语言IDE,把常用的窗口都整合在让开发者,不用在命令行和绘图窗口跳来跳去,RStudio全部都在一个窗口,让你更方便的来控制。R语言,一直来都没有一个很好的IDE,RStudio算是给R补充了这一块。

软件安装

  • ubuntu下安装r语言以及rstudio
sudo apt install -y r-base r-base-dev
sudo apt install -y rstudio
  • Windows下安装r语言以及rstudio

使用国内的R程序镜像源:R base
使用官方的rstudio下载页面:RStudio

使用初步

模拟百分之一中奖率的一次抽奖活动

> choujiang <- c("未中奖","中奖") 
> sample(choujiang, 100, prob=c(99,1), replace = TRUE)
  [1] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
  [7] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [13] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [19] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [25] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [31] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [37] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [43] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [49] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [55] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [61] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [67] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [73] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [79] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [85] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [91] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [97] "未中奖" "未中奖" "未中奖" "未中奖"

查看投掷100次骰子各个面出现的几率

> table(sample(1:6,100,replace = TRUE))

 1  2  3  4  5  6 
13 24 14 18 15 16 

绘制直方图

> hist(sample(1:6,100,replace = TRUE), breaks=0:6)

安装插件

要使用ggplot2插件,需要在联网情况下,在rstudio的命令窗口执行

install.packages("ggplot2")

tips:注意"C:\Program Files\R\R-3.4.1\library"目录要有写权限。

> res <- replicate(10000, mean(sample(1:6,100,replace = TRUE)))
> hist(res)
> library(ggplot2)
> dice <- data.frame(骰子 = res)
> ggplot(dice, aes(x=骰子))+geom_histogram(bindwith = .1,fill="steelblue",color="black",alpha=0.5)+xlab("期望值")+ylab("次数")+ggtitle("掷100次骰子后的期望值")