任务一: 数字呈现20219通常可能的原因是特定的编码方式、excel储存转换的原因、或者是问卷等方式收集到了这样的数据。但这里需要输出的结果是2025-05-11,所以出现的问题可能是更复杂的。有一种可能是设置了一个起始的日期,该数字为该日期之后的天数。

end<-as.Date("2025-05-11")##将其转化成日期格式
during<-end-20219##计算出起始日期
x=as.Date(20219,origin<-during)##得出结果
x
## [1] "2025-05-11"

任务二:

movie<-read.csv("C:/Users/18487/Desktop/统计软件/电影数据.csv",header=T,,fileEncoding = "GBK")##读入数据
movietime1<-as.Date(movie$showtime[movie$name=='夜孔雀'])
movietime2<-as.Date(movie$showtime[movie$name=='叶问3'])##分别将数据转化成日期格式存入变量中
during<-abs(movietime1-movietime2)##求绝对值,但是如果需要知道谁在前谁在后,则不用求绝对值
during
## Time difference of 77 days

任务三:

a<-read.csv("C:/Users/18487/Desktop/统计软件/film .csv",header=T,,fileEncoding = "GBK")##读入数据
summary(a)
##      片名              放映场数           人数            电影票房     
##  Length:275         Min.   :  4.27   Min.   :  28.54   Min.   :  1010  
##  Class :character   1st Qu.: 45.42   1st Qu.:  72.36   1st Qu.:  2194  
##  Mode  :character   Median : 75.38   Median : 156.03   Median :  4817  
##                     Mean   :122.79   Mean   : 329.15   Mean   : 11162  
##                     3rd Qu.:155.93   3rd Qu.: 418.23   3rd Qu.: 13871  
##                     Max.   :833.71   Max.   :3920.55   Max.   :127168  
##                                                                        
##      类型              上映年份       上映月份         上映周数   
##  Length:275         Min.   :2010   Min.   : 1.000   Min.   : 1.0  
##  Class :character   1st Qu.:2011   1st Qu.: 4.000   1st Qu.:14.0  
##  Mode  :character   Median :2012   Median : 7.000   Median :28.0  
##                     Mean   :2012   Mean   : 6.542   Mean   :27.3  
##                     3rd Qu.:2013   3rd Qu.: 9.000   3rd Qu.:39.0  
##                     Max.   :2013   Max.   :12.000   Max.   :53.0  
##                                                                   
##     宣发方               时长         是否改编          是否真人真事    
##  Length:275         Min.   : 75.0   Length:275         Min.   :0.00000  
##  Class :character   1st Qu.: 94.5   Class :character   1st Qu.:0.00000  
##  Mode  :character   Median :102.0   Mode  :character   Median :0.00000  
##                     Mean   :104.4                      Mean   :0.09091  
##                     3rd Qu.:112.5                      3rd Qu.:0.00000  
##                     Max.   :156.0                      Max.   :1.00000  
##                                                                         
##     是否翻拍         是否续集          导演              导演年代    
##  Min.   :0.0000   Min.   :0.0000   Length:275         Min.   :30.00  
##  1st Qu.:0.0000   1st Qu.:0.0000   Class :character   1st Qu.:50.00  
##  Median :0.0000   Median :0.0000   Mode  :character   Median :60.00  
##  Mean   :0.1018   Mean   :0.1673                      Mean   :61.02  
##  3rd Qu.:0.0000   3rd Qu.:0.0000                      3rd Qu.:70.00  
##  Max.   :1.0000   Max.   :1.0000                      Max.   :80.00  
##                                                       NA's   :1      
##    第几部作品      导演得奖情况     导演是否转型      主演1          
##  Min.   :  1.00   Min.   :0.0000   Min.   :0.000   Length:275        
##  1st Qu.:  3.00   1st Qu.:0.0000   1st Qu.:0.000   Class :character  
##  Median :  7.00   Median :1.0000   Median :0.000   Mode  :character  
##  Mean   : 13.26   Mean   :0.5693   Mean   :0.135                     
##  3rd Qu.: 16.00   3rd Qu.:1.0000   3rd Qu.:0.000                     
##  Max.   :110.00   Max.   :1.0000   Max.   :1.000                     
##  NA's   :1        NA's   :1        NA's   :1                         
##   baidu.index1      主演2            baidu.index2  
##  Min.   :    0   Length:275         Min.   :    0  
##  1st Qu.: 2025   Class :character   1st Qu.: 1596  
##  Median : 5534   Mode  :character   Median : 3736  
##  Mean   : 9305                      Mean   : 7657  
##  3rd Qu.: 9630                      3rd Qu.: 8430  
##  Max.   :84936                      Max.   :84936  
##                                     NA's   :8

发现部分数据有NA’s的标志,则为有数据缺失的:导演年代、第几部作品、导演得奖情况、导演是否转型、baidu.index2

a_clean<-na.omit(a)##查到此函数可以进行删除缺失数据行的操作
summary(a_clean)##进行检查
##      片名              放映场数           人数            电影票房     
##  Length:266         Min.   :  9.69   Min.   :  31.91   Min.   :  1010  
##  Class :character   1st Qu.: 45.53   1st Qu.:  72.58   1st Qu.:  2226  
##  Mode  :character   Median : 77.94   Median : 159.71   Median :  5113  
##                     Mean   :125.24   Mean   : 336.84   Mean   : 11437  
##                     3rd Qu.:161.48   3rd Qu.: 424.03   3rd Qu.: 14195  
##                     Max.   :833.71   Max.   :3920.55   Max.   :127168  
##      类型              上映年份       上映月份         上映周数    
##  Length:266         Min.   :2010   Min.   : 1.000   Min.   : 1.00  
##  Class :character   1st Qu.:2011   1st Qu.: 4.000   1st Qu.:14.00  
##  Mode  :character   Median :2012   Median : 7.000   Median :28.00  
##                     Mean   :2012   Mean   : 6.556   Mean   :27.33  
##                     3rd Qu.:2013   3rd Qu.: 9.000   3rd Qu.:39.00  
##                     Max.   :2013   Max.   :12.000   Max.   :53.00  
##     宣发方               时长         是否改编          是否真人真事    
##  Length:266         Min.   : 77.0   Length:266         Min.   :0.00000  
##  Class :character   1st Qu.: 95.0   Class :character   1st Qu.:0.00000  
##  Mode  :character   Median :103.0   Mode  :character   Median :0.00000  
##                     Mean   :104.9                      Mean   :0.09023  
##                     3rd Qu.:114.0                      3rd Qu.:0.00000  
##                     Max.   :156.0                      Max.   :1.00000  
##     是否翻拍          是否续集          导演              导演年代    
##  Min.   :0.00000   Min.   :0.0000   Length:266         Min.   :30.00  
##  1st Qu.:0.00000   1st Qu.:0.0000   Class :character   1st Qu.:50.00  
##  Median :0.00000   Median :0.0000   Mode  :character   Median :60.00  
##  Mean   :0.09774   Mean   :0.1617                      Mean   :60.94  
##  3rd Qu.:0.00000   3rd Qu.:0.0000                      3rd Qu.:70.00  
##  Max.   :1.00000   Max.   :1.0000                      Max.   :80.00  
##    第几部作品      导演得奖情况     导演是否转型       主演1          
##  Min.   :  1.00   Min.   :0.0000   Min.   :0.0000   Length:266        
##  1st Qu.:  3.00   1st Qu.:0.0000   1st Qu.:0.0000   Class :character  
##  Median :  7.00   Median :1.0000   Median :0.0000   Mode  :character  
##  Mean   : 13.55   Mean   :0.5865   Mean   :0.1391                     
##  3rd Qu.: 16.00   3rd Qu.:1.0000   3rd Qu.:0.0000                     
##  Max.   :110.00   Max.   :1.0000   Max.   :1.0000                     
##   baidu.index1      主演2            baidu.index2  
##  Min.   :    0   Length:266         Min.   :    0  
##  1st Qu.: 2331   Class :character   1st Qu.: 1570  
##  Median : 5534   Mode  :character   Median : 3716  
##  Mean   : 9536                      Mean   : 7651  
##  3rd Qu.: 9630                      3rd Qu.: 8342  
##  Max.   :84936                      Max.   :84936
a_clean[which.max(a_clean$电影票房),]##输出结果
##              片名 放映场数    人数 电影票房 类型 上映年份 上映月份 上映周数
## 53 人再囧途之泰囧   833.71 3920.55 127168.1 喜剧     2012       12       51
##    宣发方 时长 是否改编 是否真人真事 是否翻拍 是否续集 导演 导演年代 第几部作品
## 53      S  105        S            0        0        1 徐峥       70          1
##    导演得奖情况 导演是否转型 主演1 baidu.index1 主演2 baidu.index2
## 53            1            1  徐峥         3770  黄渤         9285
a_clean[which.min(a_clean$电影票房),]
##                           片名 放映场数 人数 电影票房 类型 上映年份 上映月份
## 220 举起手来(之二)追击阿多丸    20.24 41.3  1010.16 喜剧     2010        9
##     上映周数 宣发方 时长 是否改编 是否真人真事 是否翻拍 是否续集   导演
## 220       37      G   91        S            0        0        1 冯小宁
##     导演年代 第几部作品 导演得奖情况 导演是否转型  主演1 baidu.index1 主演2
## 220       50         13            1            0 潘长江         2639  郭达
##     baidu.index2
## 220          857

任务四:

type<-c('贺岁档','普通档','黄金1档','暑期档','黄金2档','贺岁档')##建立档期类型的向量
a_clean$dangqi<-cut(a_clean$上映月份,breaks = c(0,2,4,6,9,11,12),labels = type)##用cut函数给它们分割成几份,放在相应的档期类型中
table(factor(a_clean$dangqi, levels = c("贺岁档","黄金1档","黄金2档","普通档","暑期档")))
## 
##  贺岁档 黄金1档 黄金2档  普通档  暑期档 
##      66      35      33      42      90
##将其用所需的顺序进行排列之后通过table函数统计频数输出

任务五:

a_clean$导演年代[a_clean$导演年代==30|a_clean$导演年代==40]='50以下'##合并操作
a_clean$导演年代<-factor(a_clean$导演年代,order=T,levels=c('50以下',60,70,80))##改变导演年代的因子水平
a_clean$导演年代
##   [1] <NA>   <NA>   60     60     70     70     60     60     60     60    
##  [11] 70     70     80     70     70     70     70     <NA>   60     <NA>  
##  [21] <NA>   60     60     60     70     70     <NA>   70     70     70    
##  [31] 70     50以下 70     70     <NA>   <NA>   60     60     60     <NA>  
##  [41] <NA>   <NA>   <NA>   70     80     70     60     70     70     60    
##  [51] 50以下 70     70     <NA>   <NA>   <NA>   70     70     70     60    
##  [61] 60     70     70     <NA>   60     70     70     70     50以下 60    
##  [71] 70     <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   <NA>  
##  [81] 60     70     70     70     60     <NA>   60     <NA>   <NA>   60    
##  [91] 60     60     <NA>   <NA>   60     70     60     60     60     60    
## [101] 70     60     60     60     60     60     70     60     60     <NA>  
## [111] 70     70     60     70     60     70     60     70     70     60    
## [121] 60     60     60     70     70     60     60     <NA>   <NA>   60    
## [131] 60     60     60     <NA>   70     70     60     <NA>   <NA>   60    
## [141] 60     60     70     70     60     70     60     80     70     60    
## [151] 60     60     60     60     70     50以下 <NA>   70     70     60    
## [161] 70     70     <NA>   60     60     60     70     70     70     80    
## [171] 80     60     70     80     70     70     60     60     60     60    
## [181] 60     60     60     <NA>   <NA>   70     70     70     70     70    
## [191] 60     60     <NA>   80     <NA>   60     80     80     60     60    
## [201] 70     <NA>   60     60     60     70     60     60     60     60    
## [211] 60     80     <NA>   <NA>   <NA>   <NA>   <NA>   70     70     70    
## [221] 70     70     <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   60    
## [231] 70     60     <NA>   <NA>   70     <NA>   80     80     70     <NA>  
## [241] <NA>   <NA>   60     60     60     60     60     60     <NA>   <NA>  
## [251] 60     60     60     <NA>   <NA>   60     <NA>   <NA>   60     60    
## [261] 60     60     60     60     60     60    
## Levels: 50以下 < 60 < 70 < 80

注:题目要求是50以下 < 60 < 70 < 80,这可能导致50成为缺失值,解决方法是将50加入levels中

任务六:

a_clean$上映日期<-as.Date(paste(a_clean$上映年份,a_clean$上映月份,01,sep='-'))##用paste函数给它连起来,再换成日期型数据
a_order<-a_clean[order(a_clean$上映日期,-a_clean$电影票房,a_clean$类型),]
##将数据集按照上映日期、票房和类型进行排序,其中上映日期升序排序、票房降序排序,因此票房前要加上符号“-”
head(a_order,10)##展示前十
##                         片名 放映场数   人数 电影票房     类型 上映年份
## 17  喜羊羊与灰太狼之虎虎生威   109.70 442.23 12750.30     动画     2010
## 198                     孔子    96.34 307.95 10138.85 历史剧情     2010
## 239                 大兵小将   126.07 505.16 16218.38     动作     2010
## 169                   锦衣卫   115.13 445.19 14469.55     动作     2010
## 63                  全城热恋   104.13 394.40 13289.84     爱情     2010
## 101             花田喜事2010    56.14 203.06  6179.05     喜剧     2010
## 32                    苏乞儿    54.12 153.32  5127.52     动作     2010
## 266                 72家租客    30.75 124.66  3863.35     喜剧     2010
## 143                 越光宝盒   134.85 416.39 13297.01     魔幻     2010
## 79                  未来警察    79.04 198.09  6073.06     魔幻     2010
##     上映月份 上映周数 宣发方 时长 是否改编 是否真人真事 是否翻拍 是否续集
## 17         1        5      L   88        S            0        1        1
## 198        1        4      G  125        S            1        0        0
## 239        2        7      G   96        S            0        0        0
## 169        2        6      S  114        S            0        0        0
## 63         2        7      S  105        S            0        0        0
## 101        2        7      S   93        S            0        0        1
## 32         2        7      C  115        S            1        1        0
## 266        2        7      L   98        S            0        1        0
## 143        3       12      S   90        S            0        0        0
## 79         3       14      G   99        S            0        0        0
##                       导演 导演年代 第几部作品 导演得奖情况 导演是否转型  主演1
## 17                  赵崇邦       70          2            0            0 王祖蓝
## 198                   胡玫     <NA>          8            1            0 周润发
## 239                   丁晟       60          3            1            1   成龙
## 169                 李仁港       60          9            1            0 甄子丹
## 63                 夏永康        60          1            0            0 张学友
## 101                 邱礼涛       60         97            1            0 古天乐
## 32                  袁和平   50以下         25            1            1 赵文卓
## 266 曾志伟、钟澍佳、叶念琛     <NA>          1            0            1 张学友
## 143                 刘镇伟     <NA>         24            1            0 郑中基
## 79                    王晶     <NA>         76            1            0 李冰冰
##     baidu.index1  主演2 baidu.index2 dangqi   上映日期
## 17          6231 谢天华         3446 贺岁档 2010-01-01
## 198        11814 陈建斌         2072 贺岁档 2010-01-01
## 239        21802 王力宏        21943 贺岁档 2010-02-01
## 169         9630   赵薇        21334 贺岁档 2010-02-01
## 63         13125 徐熙媛         2134 贺岁档 2010-02-01
## 101         9501 吴君如         2196 贺岁档 2010-02-01
## 32          6083   周迅         6495 贺岁档 2010-02-01
## 266        31125 袁咏仪         2731 贺岁档 2010-02-01
## 143         2338   孙俪        18049 普通档 2010-03-01
## 79         40822 徐熙媛         2134 普通档 2010-03-01

任务七:

num<-c('22万','30万','50万','120万','11万')##将题目数据存入向量
num_clean<-as.numeric(gsub("万","",num))##先用gsub函数去除万字,再将其转换成数值型变量存入新的向量
mean(num_clean*10000)##乘以一万之后求均值
## [1] 466000