【R语言】东北大学大数据班R语言考试
title: “R Exam”
output: html_notebook
1 通过引入 DMwR 包,加载 sales 数据集。
sales<-read.csv("D:\\张志浩\\大数据班\\R语言实验-徐娇\\R考试\\考试用数据\\sales.csv")
(1)查看数据的前 10 行数据和后 3 行数据;
head(sales,10)
head(sales,3)
(2)检查 Quant 和 Val 这 2 个字段同时缺失的有多少样本;
nrow(sales[is.na(sales$Quant)&is.na(sales$Val), ])
(3)计算 Insp 列中每种类别占总数据样本的比例.
mytable <- table(sales$Insp)
mytable
prop.table(mytable)
(4)检查 sales 数据集中有缺失值的样本有多少;然后将缺失样本移除.
sum(rowSums(is.na(sales)) > 0)
sales<-na.omit(sales)
(5)绘制(4)中将缺失样本移除后的数据,每个 ID 对应的样本条数的条形图.
sales<-data.table(sales)
sales.number<- sales[,.(number=.N), keyby=.(ID)]
library(plotly)
plot_ly(sales.number, x = ~ ID, y = ~ number)%>%add_bars()
2 将1, 2,…, 20
构成两个4x5 阶的矩阵,其中矩阵A是按列输入,矩阵B是按行输入,并作如下运算.
A<-matrix(1:20,c(4,5))
A
B<-matrix(1:20,c(4,5),byrow=TRUE)
B
(1)C=A+B
C<-A+B
C
(2)
E<-A*B
E
(3)F是由A的前3行和前3列构成的矩阵,并给列起名为 col1~col3,行起名为 row1~row3;
F<-A[1:3,1:3]
F
rnames <- c("col1","col2","col3")
cnames <- c("row1","row2","row3")
F
(4)G是由矩阵B的各列构成的矩阵,但不含B的第3列;然后将 A 与 G 按列合并.
G<-B[,-3]
G
cbind(A,G)
3 可视化 heart attack 30天死亡率的分布(可为核密度图或是直方图)【数据:outcome-ofcare-measures.csv】【20 分】
heart<-read.csv("D:\\张志浩\\大数据班\\R语言实验-徐娇\\R考试\\考试用数据\\outcome-of-care-measures.csv")
除去缺失值
heart<-heart[heart$Hospital.30.Day.Death..Mortality..Rates.from.Heart.Attack!="Not Available",]
heart_attack<-as.double(heart$Hospital.30.Day.Death..Mortality..Rates.from.Heart.Attack)
heart_attack<-density(heart_attack)
plot(heart_attack)
heart_attack<-as.double(heart$Hospital.30.Day.Death..Mortality..Rates.from.Heart.Attack)
hist(heart_attack,breaks=100,freq=FALSE,main = "heart attack 30 天死亡率的分布")
plot(heart$Hospital.30.Day.Death..Mortality..Rates.from.Heart.Attack)
4 统计每个州有多少家医院,并绘制散点图【数据:hospital-data.csv】–用 data.table【15
分】
library(data.table)
hospital<-read.csv("D:\\张志浩\\大数据班\\R语言实验-徐娇\\R考试\\考试用数据\\hospital-data.csv")
hospital<-data.table(hospital)
hospital.number<- hospital[,.(hospital.number=.N), keyby=.(State)]
plot(hospital.number)
5 将 item_feature1.csv 读入到 df 中选取 date 、item_id 、cate_id 和 cart_ipv 存在 feature中,通过编写函数或是条件、循环语句计算每个 cate_id 下的 item_id 的最早上架时间,并计算在该 cate_id 下的每个 item_id 的加入购物车的( cart_ipv )总量,最后的输出格式是cate_id 、 item_id ,shelf_time 和 total_cart(按 cate_id 升序排列),并输出handle_data.csv文件。【数据:item_feature1.csv】【20 分】
library(dplyr)
df<-read.csv("D:\\张志浩\\大数据班\\R语言实验-徐娇\\R考试\\考试用数据\\item_feature1.csv")
colnames(df)<-c("date","item_id","cate_id","cate_level_id","brand_id","supplier_id","pv_ipv","cart_uv","collect_uv","cart_ipv")
feature<-df[,c("date","item_id","cate_id","cart_ipv")]
treat_feature<-function(x){
shelf_time<-x%>%group_by(cate_id,item_id)%>%summarise(min(date))
total_cart<-x%>%group_by(cate_id,item_id)%>%summarise(sum(cart_ipv))
handle<-merge(shelf_time,total_cart)
item_id<-x[,c("item_id","cate_id")]
item_id<-unique(item_id)
handle_data<-merge(handle,item_id)
handle_data<-handle_data[order(handle_data$cate_id),]
colnames(handle_data)<-c("cate_id","item_id","shelf_time","total_cart")
return(handle_data)
}
handle_data<-treat_feature(feature)
write.csv(handle_data,"handle_data.csv")