Rmarkdown对电影数据集进行统计分析
- 任務一
- 讀入電影數據.csv數據集,將其命名為a,嘗試使用summary函數查看數據總體情況。重點查看缺失情況,如果有缺失,請將缺失數據所在行全部刪除(提示:你可能需要檢索一些處理缺失數據的函數)。展示票房最高和最低記錄的觀測。
- 任務二
- 根據上映月份新生成一個變量叫做dangqi,其中12月、1月和2月歸為賀歲檔;7、8、9歸為暑期檔;3、4歸為普通檔;5、6歸為黃金1檔;10、11歸為黃金2檔;最后對檔期進行統計。
- 任務三
- 將導演年代為30和40的統一合并為”50以下”,合并之后,更改導演年代的因子水平,使其變為:50以下<60<70<80
- 任務四
- 對數據表格中的數據按照時間順序排列,展示前6行,部分列(“name”和”showtime”)
- 任務五
- 新生成一個變量叫做”上映日期”,由”上映年份”和”上映月份”構成,日期統一用每月的1號。例如”新天生一對”的上映日期為2012-01-01。將數據集按照上映日期、票房和類型進行排序,其中上映日期升序排列、票房降序排列。展示前10行。
- 任務六
- 在很多實際數據中,有些日期的表示并不是yyyy-mm-dd的形式,極個別情況是以數字形式展示,比如實際數據中用16520代表日期。請將該數值轉換為日期形式。
任務一
讀入電影數據.csv數據集,將其命名為a,嘗試使用summary函數查看數據總體情況。重點查看缺失情況,如果有缺失,請將缺失數據所在行全部刪除(提示:你可能需要檢索一些處理缺失數據的函數)。展示票房最高和最低記錄的觀測。
## 導入電影數據.csv數據集 a = read.csv("C:/Users/Desktop/film.csv",header = T,fileEncoding = "UTF-8") ## 查看數據集前五行 #head(a) ## 數據匯總summary summary(a) ## 查看數據集行數與列數 dim(a) ## 查看數據中是否存在缺失值數據 is.na(a) ## 查看數據集中總的缺失值個數 sum(is.na(a)) ## 按列查看缺失值個數 #colSums(is.na(a)) ## 刪除有缺失值的行數 a = na.omit(a) dim(a)展示票房最高和最低記錄的觀測
## 顯示票房最高數的觀測 (MAX = a[a$boxoffice == max(a$boxoffice),]) ## 顯示票房最低數的觀測 (MIN = a[a$boxoffice == min(a$boxoffice),])票房最高紀錄觀測輸出結果為:
name boxoffice doubanscore type duration showtime director star1 index1 2 美人魚 338583.3 6.9 喜劇 93 2016/2/8 周星馳 鄧超 41310 star2 index2 導演年代 2 林允 9292 60票房最低紀錄觀測輸出結果為:
name boxoffice doubanscore type duration showtime director star1 index1 19 鋼刀 924.86 4.3 動作 94 2016/5/20 阿甘 何潤東 11822 star2 index2 導演年代 19 李學東 521 60任務二
根據上映月份新生成一個變量叫做dangqi,其中12月、1月和2月歸為賀歲檔;7、8、9歸為暑期檔;3、4歸為普通檔;5、6歸為黃金1檔;10、11歸為黃金2檔;最后對檔期進行統計。
## 賦值新的變量 a$months = months(as.Date(a$showtime)) a$dangqi[a$months == "十二月" | a$months == "一月" | a$months == "二月"] = "賀歲檔" a$dangqi[a$months =="七月" | a$months == "八月" | a$months == "九月"] = "暑假檔" a$dangqi[a$months =="三月" | a$months == "四月"] = "普通檔" a$dangqi[a$months =="五月" | a$months == "六月"] = "黃金1檔" a$dangqi[a$months =="十月" | a$months == "十一月"] = "黃金2檔" ## 對檔期進行統計 table(a$dangqi)或者可以使用下面這種方法:
## install.packages("lubridate") library(lubridate) a$month = month(as.Date(a$showtime)) a$dangqi2[a$month == "12" | a$month == "1" | a$month == "2"] = "賀歲檔" a$dangqi2[a$month =="7" | a$month == "8" | a$month == "9"] = "暑假檔" a$dangqi2[a$month =="3" | a$month == "4"] = "普通檔" a$dangqi2[a$month =="5" | a$month == "6"] = "黃金1檔" a$dangqi2[a$month =="10" | a$month == "11"] = "黃金2檔" ## 對檔期進行統計 table(a$dangqi2)任務三
將導演年代為30和40的統一合并為”50以下”,合并之后,更改導演年代的因子水平,使其變為:50以下<60<70<80
a$導演年代[a$導演年代 == 30 | a$導演年代 == 40 | a$導演年代 == 50] = "50及以下" #更改導演年代的因子水平,使其變為:50以下<60<70<80 a$directorage = factor(a$導演年代,levels = c("50及以下", "60", "70","80"),ordered = T,) a$directorage class(a$directorage)任務四
對數據表格中的數據按照時間順序排列,展示前6行,部分列(“name”和”showtime”)
## 按照時間順序進行排序 head(a[order(a$showtime),c("name","showtime")],6)或者使用下述方法:
a = a[order(a$showtime),] head(a[,c(1,6)])任務五
新生成一個變量叫做”上映日期”,由”上映年份”和”上映月份”構成,日期統一用每月的1號。例如”新天生一對”的上映日期為2012-01-01。將數據集按照上映日期、票房和類型進行排序,其中上映日期升序排列、票房降序排列。展示前10行。
## 生成一個新變量 a$ondate = as.Date(a$showtime) ## 將日期統一為每月的1號 a$ondate = paste(substr(a$ondate,1,8),"01",sep="") ## 按照上映日期升序、票房降序、類型排列 a = a[order(a$ondate,-a$boxoffice,a$type),] ## 展示前10行 head(a,10)任務六
在很多實際數據中,有些日期的表示并不是yyyy-mm-dd的形式,極個別情況是以數字形式展示,比如實際數據中用16520代表日期。請將該數值轉換為日期形式。
這里題目中最終要求生成2016-05-20,而不是網上常說的單純的將數字轉換成日期格式(即設定某個起始時間,如下)
as.Date(35981, origin = "1899-12-30")
這種并不適用于本題目的解答。
總結
以上是生活随笔為你收集整理的Rmarkdown对电影数据集进行统计分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 行为招聘法:你会被谷歌录取吗
- 下一篇: 判断是否为PE文件改进版