数说-在麦当劳吃三餐是什么样的后果?

数说-在麦当劳吃三餐是什么样的后果?_第1张图片

本文尝试对Kaggle中提供的一份“麦当劳菜单中的各类食品的营养成分表”进行数据分析,初步回答页面中的一个问题,并做一些延伸讨论。

Inspiration

How many calories does the average McDonald's value meal contain?

平均下来,每顿麦当劳大概含有多少卡路里?


1.导入数据

下载数据集,解压后得到名为“menu”的.csv文件,脚本输入代码:

library(readr)

menu <- read_csv("C:/Users/Administrator/Desktop/menu.csv")

成功导入相应数据:

数说-在麦当劳吃三餐是什么样的后果?_第2张图片

脚本输入代码:

menu #显示数据

class(menu)#数据类型显示

dim(menu)#查看变量的维数

数说-在麦当劳吃三餐是什么样的后果?_第3张图片

由图可知,本数据集是一个data.frame类型的对象,包含260条数据记录、24个变量

2.数据处理

本次数据分析的目标是:计算平均每顿麦当劳的卡路里数。对于以上问题,我们需要的变量应该为:每种餐品对应的卡路里数。

从表中目测可知,餐品类别有一下9组:Breakfast(早餐)、Beef & Pork(牛肉和猪肉)、Chicken & Fish(鸡肉和鱼)、Salads(沙拉)、Snacks & Sides(小吃和面包)、Desserts(甜点)、Beverages(饮料)、Coffee & Tea(咖啡和茶)、Smoothies & Shakes(冰沙和奶昔)。因此,我们首先计算出每个类别的餐品所提供的卡路里数:

脚本输入代码:

food<-menu

MCfood <- select(food,Category,Calories) #筛选变量列表

by_Category <- group_by(MCfood, Category) #将Category进行分组

by_Category #显示by_Category数据表

由上图可知,数据表包含260条数据记录、2个变量,按照category被分为9组。

数说-在麦当劳吃三餐是什么样的后果?_第4张图片

3.数据计算

接着输入代码:

Category_sum <- summarise(by_Category, count = n(),#统计各分组的数量

mean_calories = mean(Calories, na.rm = TRUE))#计算每组平均卡路里数

Category_sum <- arrange(Category_sum , desc(mean_calories)) #按照卡路里数降序排列

Category_sum #显示Category_sum 表数据

由表中可知,各分组的餐品的平均卡路里量。Breakfast(早餐)为526.6、Beef & Pork(牛肉和猪肉)为494.0、Chicken & Fish(鸡肉和鱼)为553.0、Salads(沙拉)为270.0、Snacks & Sides(小吃和面包)为245.8、Desserts(甜点)为222.1、Beverages(饮料)为113.7、Coffee & Tea(咖啡和茶)为283.9、Smoothies & Shakes(冰沙和奶昔)为531.4。

数说-在麦当劳吃三餐是什么样的后果?_第5张图片

由上述数据,可以绘制出餐品热量排名图,脚本输入代码:

ggplot(Category_sum ,aes(x =reorder(Category,mean_calories),y = mean_calories))+

geom_bar(stat = "identity",fill = "#B4EEB4",colour = "#BFFFFF",width=0.68) #绘制柱形图


按照本人的饮食习惯,选择的午餐的搭配通常为肉类、主食、甜点、饮品。所以,固定主食和甜点不变,我可以选择的剩余组合是Beef & Pork、Beverages;Beef & Pork、Coffee & Tea;Beef & Pork、Smoothies & Shakes;Chicken & Fish、Beverages;Chicken & Fish、Coffee & Tea;Chicken & Fish、Smoothies & Shakes,共计6种组合。分别计算各组合的卡路里量:

sum(245.8,222.1)#固定主食和甜点的卡路里数

sum1<-sum(245.8,222.1)

a<-sum(494.0,113.7,sum1)#加上Beef & Pork、Beverages的总卡路里数

b<-sum(494.0,283.9,sum1)#加上Beef & Pork、Coffee & Tea的总卡路里数

c<-sum(494.0,531.4,sum1)#加上Beef & Pork、Smoothies & Shakes的总卡路里数

d<-sum(553.0,113.7,sum1)#加上Chicken & Fish、Beverages的总卡路里数

e<-sum(553.0,283.9,sum1)#加上Chicken & Fish、Coffee & Tea的总卡路里数

f<-sum(553.0,531.4,sum1)#加上Chicken & Fish、Smoothies & Shakes的总卡路里数

数说-在麦当劳吃三餐是什么样的后果?_第6张图片

上述六种午餐组合的卡路里摄入分别为1075.6、1245.8、1493.3、1134.6、1304.8、1552.3,由此可以计算出午餐平均摄入卡路里量。继续输入代码:

mean1<-c(a,b,c,d,e,f)

lunch=mean(mean1)

lunch

由上图可知,午餐摄入卡路里量为1301.1

本人晚餐的组合一般为肉类、主食、饮品,固定主食不变,所选的组合依旧为Beef & Pork、Beverages;Beef & Pork、Coffee & Tea;Beef & Pork、Smoothies & Shakes;Chicken & Fish、Beverages;Chicken & Fish、Coffee & Tea;Chicken & Fish、Smoothies & Shakes,共计6种组合。所以,只需将午餐卡路里平均摄入量减去甜点的222.1,即为晚餐平均卡路里摄入量。输入代码:

dinner=lunch-222.1

dinner

由图可知,本人晚餐摄入卡路里为1078.967。


数说-在麦当劳吃三餐是什么样的后果?_第7张图片

综上所述,本人在麦当劳早、中、晚餐的卡路里摄入量分别为526.6、1301.1、1079。平均每顿摄入卡路里数为:

meal_mean=c(526.6,lunch,dinner)

mean(meal_mean)

从图可知,本人在麦当劳平均每顿摄入卡路里为968.9!!!!!!

数说-在麦当劳吃三餐是什么样的后果?_第8张图片

meal_sum=sum(526.6,lunch,dinner)

meal_sum

从图可知,本人在麦当劳一天摄入平均卡路里为2906.6!!!!!!

我因此从网上查询了每日需要卡路里的计算方法:

[(10 × 体重) + (6.25 × 身高) - (5 × 年龄) - 161]*活动量,活动量为1.1-1.3不等。

代入体重51、身高165、年龄26,计算得卡路里需求范围为:1375.3-1625.3。

这告诉我,在麦当劳吃上三餐,相当于摄入了正常两天所需要的热量。哎哎哎~管住嘴、迈开腿啊~~~

你可能感兴趣的:(数说-在麦当劳吃三餐是什么样的后果?)