本文嘗試對Kaggle中提供的一份“麥當(dāng)勞菜單中的各類食品的營養(yǎng)成分表”進行數(shù)據(jù)分析,初步回答頁面中的一個問題然遏,并做一些延伸討論。
Inspiration
How many calories does the average McDonald's value meal contain?
平均下來吧彪,每頓麥當(dāng)勞大概含有多少卡路里待侵?
1.導(dǎo)入數(shù)據(jù)
下載數(shù)據(jù)集,解壓后得到名為“menu”的.csv文件姨裸,腳本輸入代碼:
library(readr)
menu <- read_csv("C:/Users/Administrator/Desktop/menu.csv")
成功導(dǎo)入相應(yīng)數(shù)據(jù):
腳本輸入代碼:
menu #顯示數(shù)據(jù)
class(menu)#數(shù)據(jù)類型顯示
dim(menu)#查看變量的維數(shù)
由圖可知秧倾,本數(shù)據(jù)集是一個data.frame類型的對象,包含260條數(shù)據(jù)記錄啦扬、24個變量中狂。
2.數(shù)據(jù)處理
本次數(shù)據(jù)分析的目標是:計算平均每頓麥當(dāng)勞的卡路里數(shù)。對于以上問題扑毡,我們需要的變量應(yīng)該為:每種餐品對應(yīng)的卡路里數(shù)。
從表中目測可知盛险,餐品類別有一下9組:Breakfast(早餐)瞄摊、Beef & Pork(牛肉和豬肉)、Chicken & Fish(雞肉和魚)苦掘、Salads(沙拉)换帜、Snacks & Sides(小吃和面包)、Desserts(甜點)鹤啡、Beverages(飲料)惯驼、Coffee & Tea(咖啡和茶)、Smoothies & Shakes(冰沙和奶昔)递瑰。因此祟牲,我們首先計算出每個類別的餐品所提供的卡路里數(shù):
腳本輸入代碼:
food<-menu
MCfood <- select(food,Category,Calories) #篩選變量列表
by_Category <- group_by(MCfood, Category) #將Category進行分組
by_Category #顯示by_Category數(shù)據(jù)表
由上圖可知,數(shù)據(jù)表包含260條數(shù)據(jù)記錄抖部、2個變量说贝,按照category被分為9組。
3.數(shù)據(jù)計算
接著輸入代碼:
Category_sum <- summarise(by_Category, count = n(),#統(tǒng)計各分組的數(shù)量
mean_calories = mean(Calories, na.rm = TRUE))#計算每組平均卡路里數(shù)
Category_sum <- arrange(Category_sum , desc(mean_calories)) #按照卡路里數(shù)降序排列
Category_sum #顯示Category_sum 表數(shù)據(jù)
由表中可知慎颗,各分組的餐品的平均卡路里量乡恕。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谆趾。
由上述數(shù)據(jù)躁愿,可以繪制出餐品熱量排名圖,腳本輸入代碼:
ggplot(Category_sum ,aes(x =reorder(Category,mean_calories),y = mean_calories))+
geom_bar(stat = "identity",fill = "#B4EEB4",colour = "#BFFFFF",width=0.68) #繪制柱形圖
按照本人的飲食習(xí)慣沪蓬,選擇的午餐的搭配通常為肉類彤钟、主食、甜點跷叉、飲品逸雹。所以,固定主食和甜點不變云挟,我可以選擇的剩余組合是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)#固定主食和甜點的卡路里數(shù)
sum1<-sum(245.8,222.1)
a<-sum(494.0,113.7,sum1)#加上Beef & Pork、Beverages的總卡路里數(shù)
b<-sum(494.0,283.9,sum1)#加上Beef & Pork赤套、Coffee & Tea的總卡路里數(shù)
c<-sum(494.0,531.4,sum1)#加上Beef & Pork飘痛、Smoothies & Shakes的總卡路里數(shù)
d<-sum(553.0,113.7,sum1)#加上Chicken & Fish、Beverages的總卡路里數(shù)
e<-sum(553.0,283.9,sum1)#加上Chicken & Fish于毙、Coffee & Tea的總卡路里數(shù)
f<-sum(553.0,531.4,sum1)#加上Chicken & Fish敦冬、Smoothies & Shakes的總卡路里數(shù)
上述六種午餐組合的卡路里攝入分別為1075.6、1245.8唯沮、1493.3脖旱、1134.6堪遂、1304.8、1552.3萌庆,由此可以計算出午餐平均攝入卡路里量溶褪。繼續(xù)輸入代碼:
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。
綜上所述拌阴,本人在麥當(dāng)勞早绍绘、中、晚餐的卡路里攝入量分別為526.6迟赃、1301.1陪拘、1079。平均每頓攝入卡路里數(shù)為:
meal_mean=c(526.6,lunch,dinner)
mean(meal_mean)
從圖可知纤壁,本人在麥當(dāng)勞平均每頓攝入卡路里為968.9W蠊簟!W妹健G烦铡F俊!
meal_sum=sum(526.6,lunch,dinner)
meal_sum
從圖可知喇辽,本人在麥當(dāng)勞一天攝入平均卡路里為2906.6U浦俊!F凶伞7褪健!抽米!
我因此從網(wǎng)上查詢了每日需要卡路里的計算方法:
[(10 × 體重) + (6.25 × 身高) - (5 × 年齡) - 161]*活動量特占,活動量為1.1-1.3不等。
代入體重51云茸、身高165是目、年齡26,計算得卡路里需求范圍為:1375.3-1625.3查辩。
這告訴我胖笛,在麥當(dāng)勞吃上三餐,相當(dāng)于攝入了正常兩天所需要的熱量宜岛。哎哎哎~管住嘴长踊、邁開腿啊~~~