R作业汇总

https://jorryyang.gitee.io/rdata/

第一次作业:

题目:

请下载hw1_ahw1_b两个excel数据文件,完成以下任务:

1. 请将数据hw1_a和hw1_b分别读入R,查看数据并指出各个变量的形式,最小值,最大值,中值,均值,标准差。

2. 结合上课我们所学的几种数据join 的形式,将两个数据集进行合并。对于每种数据合并的方式,请说明key, 并且报告合并后的数据样本总行数。

3. 请筛选出hw1_a 中收入大于4000的样本,并将此样本和hw1_b 中Is_Default=1的样本合并,你可以使用inner join的方式。这一问中你可以用pipe的书写形式。

4. 在第2问的基础上,请给出Income对Years_at_Employer的散点图,你发现了哪些趋势和现象?

5.在第4问的基础上 按照Is_Default 增加一个维度,请展示两变量在不同违约状态的散点图。请使用明暗程度作为区分方式

6. 对于第5问,请使用形状作为另外一种区分方式。

7. 请找出各个列的缺失值,并删除相应的行。请报告每一变量的缺失值个数,以及所有缺失值总数。

8. 找出Income中的极端值并滤掉对应行的数据

9. 将Income对数化,并画出直方图和density curve.

10. 以Income作为因变量,Years at Employer作为自变量,进行OLS回归,写出回归的方程,并指出自变量系数是否在某一显著性水平上显著。同时,解释你的结果(这一问你自己发挥可以找code解决)。

####### 1 ######

library(readxl)

hw1_a<-read_excel("hw1_a.xlsx",col_types=c("numeric", "numeric", "numeric",

                                              "numeric", "numeric"))

hw1_b<-read_excel("hw1_b.xlsx")

str(hw1_a)

str(hw1_b)

summary(hw1_a)

summary(hw1_b)

sd(hw1_a$Income)

library(psych)

describe(hw1_a)

describe(hw1_b)

########    2    #######

library(tidyverse)

hw1_a %>%

  inner_join(hw1_b,by="ID")

hw1_a %>%

  left_join(hw1_b,by="ID")

hw1_a %>%

  right_join(hw1_b,by="ID")

hw1_a %>%

  full_join(hw1_b,by="ID")

inner_join<-inner_join(hw1_a,hw1_b,by="ID")

(nrow(inner_join))

full_join<-full_join(hw1_a,hw1_b,by="ID")

(nrow(full_join))

#########    3    ########

hw1_a1=filter(hw1_a,Income>40000)

hw1_b1=filter(hw1_b,Is_Default==1)

inner_join1<-inner_join(hw1_a1,hw1_b1,by="ID")

#########  4    #########

ggplot(data=inner_join)+

  geom_point(mapping = aes(x=Years_at_Employer,y= Income))

########    5    ############

ggplot(data=inner_join)+

  geom_point(mapping = aes(x=Years_at_Employer,y= Income,alpha=Is_Default))

ggplot(data=inner_join)+

  geom_point(mapping = aes(x=Years_at_Employer,y= Income,

                          alpha=factor(Is_Default)))

########    6    ##########

ggplot(data=inner_join)+

  geom_point(mapping = aes(x=Years_at_Employer,y= Income,

                          shape=factor(Is_Default)))   

########    7    #########

sum(is.na(full_join[2]))

sum(is.na(full_join[3]))

sum(is.na(full_join[4]))

sum(is.na(full_join[5]))

sum(is.na(full_join[6]))

sum(is.na(full_join[7]))

sum(is.na(full_join[8]))

sum(is.na(full_join))

full_join1=filter(full_join,!is.na(full_join[2]))

full_join1=filter(full_join1,!is.na(full_join1[3]))

full_join1=filter(full_join1,!is.na(full_join1[4]))

full_join1=filter(full_join1,!is.na(full_join1[5]))

full_join1=filter(full_join1,!is.na(full_join1[6]))

full_join1=filter(full_join1,!is.na(full_join1[7]))

full_join1=filter(full_join1,!is.na(full_join1[8]))

sum(is.na(full_join1))

########  8  #########

quantile(hw1_a$Income,c(0.025,0.975))

hw1_a2=filter(hw1_a,Income>14168.81&Income<173030.92)

#######  9  #########

inc<-hw1_a$Income

lninc<-log(inc)

hist(lninc,prob=T)

lines(density(lninc),col="blue")

#######  10  #########

m1<-lm(Income~Years_at_Employer,data=hw1_a)

summary(m1)

第二次作业

问题1:


问题二:

给定数据,请完成以下任务,请给出code 和输出结果。

(1) 请读入数据,使用软件分别给出price, marketshare,和brand的缺失值数量。请按照每一个brand, 将数据按照先marjetshare 后price 进行从高到低排序

(2)请按照brand 的种类,对price和marketshare 求均值。

(3) 请按照brand 的种类,对price和marketshare 画散点图。

(4) 请按照价格的均值,产生新的变量price_new, 低于均值为“低价格”,高于均值为“高价格”。 同样对市场份额也是,产生变量marketshare_new, 数值为“低市场份额”和“高市场份额”

(5) 请估计模型,marketshare为Y,price为X.

(6) 请画出(5)的拟合直线。

(7) 请随机产生若干直线,验证(5)的结果是最优的

(8) 请估计模型,marketshare为Y,price和brand 为X.

######### 1(1) ############

get.root<-function(a,b,c){

  if(sign(b*b-4*a*c)==-1)

  {print("鏃犺В")

    return(c(NA,NA))

  } else

    return(c((-b+sqrt(b*b-4*a*c))/(2*a),(-b-sqrt(b*b-4*a*c))/(2*a)))

}

get.root(1,-4,4)

######### 1(2) #############

get.prob<-function(n){

  a=runif(n,min=1,max=5)

  b=rnorm(n,mean=3,sd=sqrt(10))

  c=rexp(n,rate=1)

  k=0

  for (i in 1:n) {

    if(sign(b[i]*b[i]-4*a[i]*c[i])==1|0)

    {k=k+1}

  }

  return(k/n)

}

get.prob(100000)

########## 2(1) ############

library(readxl)

library(tidyverse)

data<-read_xlsx("data for HW2.xlsx")

sum(is.na(data$price))

sum(is.na(data$marketshare))

sum(is.na(data$brand))

data1=filter(data,!is.na(data[1]))

data1=filter(data1,!is.na(data1[2]))

data1=filter(data1,!is.na(data1[3]))

data1=arrange(data1,desc(marketshare,price))

########### 2(2) ############

pricebars <- data1 %>%

  group_by(brand) %>%

  summarize(pricebar=mean(price))

pricebars

marketsharebars <- data1 %>%

  group_by(brand) %>%

  summarise(marketsharebar=mean(marketshare))

marketsharebars

######### 2(3) ################

ggplot(data=data1)+

  geom_point(mapping = aes(x=price,y=marketshare))+

  facet_wrap(~brand,nrow=2)

######## 2(4) ##########

price=data1$price

pricebar=mean(price)

price_new=ifelse(price>pricebar,"楂樹环鏍?","浣庝环鏍?")

marketshare=data1$marketshare

marketsharebar=mean(marketshare)

marketshare_new=ifelse(marketshare>marketsharebar,"楂樺競鍦轰唤棰?",

                      "浣庡競鍦轰唤棰?")

data1=mutate(data1,price_new,marketshare_new)

######### 2(5) #########

m1=lm(marketshare~price,data=data1)

m1

summary(m1)

######### 2(6) #########

ggplot(data=data1)+

  geom_point(aes(x=price,y=marketshare))+

  geom_abline(data= m1,col= "blue")

######### 2(7) ##########

b0=runif(20000,-5,5)

b1=runif(20000,-5,5)

d<-NA

sum<-NA

n<-1

while(n<=20000){

  for(i in 1:24){

    d[i]<-(marketshare[i]-b0[n]-b1[n]*price[i])^2}

  sum[n]<-sum(d)

  n<-n+1

}

resi=m1$residuals

resi2=sum(resi^2)

check=sum(as.numeric(sum<resi2))

######## 2(8) #########

m2=lm(marketshare~price+brand,data=data1)

m2

summary(m2)

作业三:

问题 1:

A 和 B 约定在某篮球场见面。他俩都不太守时,出现时间服从均匀分布。他俩也都没有

耐心, 每个人都会只等对方十分钟就会离开。已知 A 到篮球场的时间为下午 4 点到 5

点之间。

(1) 如果 B 到达篮球场的时间也为下午 4 点到 5 点之间,模拟运行 50000 次,看看他

们成功相遇的概率。

(2) 对上一问的 50000 次模拟,用不同颜色在一张图中展示成功相遇与否。

(3) B 应该如何选择 4 点到 5 点之间的哪个时间段,来提升他们成功相遇的概率? 用模

拟展示你的理由

问题 2:

请使用 nycflights13 和 pipe 语法

(1)从 flights 数据表中挑选出以下变量:(year, month, day, hour, origin, dep_delay,

distance, carrier),将生产的新表保存为 flight1。

(2)从 weather 数据表中挑选出以下变量: (year, month, day, hour, origin, humid,

wind_speed),将生产的新表保存为 weather1。

(3)将 flight1 表和 weather1 表根据共同变量进行内连接,随机抽取 100000 行数据,

将生产的结果保存为 flight_weather。 (提示:sample_n()函数,不用重复抽取)

(4)从 flight_weather 表中对三个出发机场按照平均出发延误时间排降序,并将结果保

留在 longest_delay 表中。把结果展示出来。

(5)根据出发地(origin) 在同一个图中画出风速 wind_speed(x 轴)和出发延误时间

dep_delay(y 轴) 的平滑曲线图。

(6)根据不同出发地(origin)在平行的 3 个图中画出风速 wind_speed(x 轴)和出发

延误时间 dep_delay(y 轴)的散点图。

(7)根据 flight_weather 表,画出每个月航班数的直方分布图,x 轴为月份,y 轴是每个

月份航班数所占的比例。

(8)根据 flight_weather 表,画出每个月航班距离的 boxplot 图,x 轴为月份,y 轴为

航行距离, 根据的航行距离的中位数从低到高对 x 轴的月份进行重新排序。

问题3:


问题1:

n_Sim <- 50000

sim_meet <- tibble(

  A = runif(n_Sim, min = 0, max = 60),

  B = runif(n_Sim, min = 0, max = 60)

) %>%

  mutate(result = ifelse(abs(A - B) <= 10,

                        "They meet", "They do not"))

p_meet <- sim_meet %>% count(result) %>%

  arrange(n) %>%

  mutate(percent = n / n_Sim)

p_meet



ggplot(data = sim_meet, aes(x = A, y = B, color = result)) +

  geom_point()


##最后一问就是学生不断修改min = 10, max = 50



问题2:

[if !supportLists](1) [endif]从flights数据表中挑选出以下变量:(year, month, day, hour, origin, dep_delay, distance, carrier),将生产的新表保存为 flight1。


library(tidyverse)

library(nycflights13)

flight1<-select(flights, year, month, day, hour, origin, dep_delay, distance, carrier)


(2) 从weather数据表中挑选出以下变量:(year, month, day, hour, origin, humid, wind_speed),将生产的新表保存为 weather1。


weather1<-select(weather, year, month, day, hour, origin, humid, wind_speed)


(3) 将flight1表和weather1表根据共同变量进行内连接,随机抽取100000行数据,将生产的结果保存为flight_weather。(提示:sample_n()函数,不用重复抽取)


flight_weather <- inner_join(flight1, weather1) %>% sample_n(100000)


(4) 从flight_weather 表中对三个出发机场按照平均出发延误时间排降序,并将结果保留在longest_delay 表中。把结果展示出来。


longest_delay<- flight_weather %>% group_by(origin) %>% summarise(ave_delay = mean(dep_delay, na.rm = TRUE)) %>% arrange(desc(ave_delay))


(5) 根据出发地(origin) 在同一个图中画出风速 wind_speed(x轴)和出发延误时间dep_delay(y轴)的平滑曲线图


ggplot(data = flight_weather)+geom_smooth(mapping = aes(x = wind_speed, y = dep_delay, linetype = origin))




(6) 根据不同出发地(origin) 在平行的3个图中画出风速 wind_speed(x轴)和出发延误时间dep_delay(y轴)的散点图。


ggplot(data = flight_weather) + geom_point(mapping = aes(x = wind_speed, y = dep_delay)) + facet_wrap(~origin,nrow = 1)



(7) 根据flight_weather表,画出每个月航班数的直方分布图,x轴为月份,y轴是每个月份航班数所占的比例。


ggplot(data=flight_weather)+geom_bar(mapping = aes(month, y=..prop.., group = 1) )




(8) 根据flight_weather表,画出每个月航班距离的boxplot图,x轴为月份,y轴为航行距离, 根据的航行距离的中位数从低到高对x轴的月份进行重新排序。


ggplot(data=flight_weather)+geom_boxplot(mapping = aes(x=reorder(month, distance, FUN=median), y=distance))




问题3:

###### (1) #######

(H <- function(p) -sum(p*log(p)))

###### (2) #######

(DKL <- function(p,q) sum( p*(log(p)-log(q)) ))

###### (3) #######

IB <- list()

IB[[1]] <- c( 0.2 , 0.2 , 0.2 , 0.2 , 0.2 )

IB[[2]] <- c( 0.8 , 0.1 , 0.05 , 0.025 , 0.025 )

IB[[3]] <- c( 0.05 , 0.15 , 0.7 , 0.05 , 0.05 )

purrr::map_dbl( IB , H )

[1] 1.6094379 0.7430039 0.9836003

###### (4) #######

Dm <- matrix( NA , nrow=3 , ncol=3 )

for ( i in 1:3 ) {

  for ( j in 1:3 ) {

    Dm[i,j] <- DKL( IB[[j]] , IB[[i]] )

  }

}

Dm


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容