R语言练习一、三、四、五

#练习一

# 1.1 产生一个等差数列(1,3,5,7,……,99)赋值给向量x,尝试不同的方式。

#1.1.1

x <- seq(from=1,to=99,by=2)

#1.1.2

x<-1:100

index = rep(c(TRUE, FALSE), 100)

x<-x[index]

x<-x[!is.na(x)]

#1.1.3

x<-NULL

num<-1

for(i in 1:50){

  x[i]<-num

num<-num+2

}

# 1.2 产生一个内容重复的数列(1,2,3,4,5……,1,2,3,4,5),重复次数为10,并将其赋值给向量y。

y<-rep(1:5,10)

# 1.3 向量z由x和y组成。请判断x、y、z的属性是否为向量。

z <- c(x,y)

is.vector(x)

is.vector(y)

is.vector(z)

# 1.4 请删除x中第个1数值。

x <- x[-1]

# 1.5 请删除y中所有的取值1,有几种方法?

#1.5.1

y <- y[-which(y==1)]

#1.5.2

y<-y[!(y==1)]

# 1.6 请选择出x中第2个数值,以及>90的数值,结果存放在同一个向量中。

vector<-c(x[2],x[which(x>90)])

#可以使用c()函数创建多个值的向量

# 1.7 请选择出x中分别处于偶数位置和奇数位置的数值。

x_odd<- x[seq(from=1,to=length(x),by=2)]

x_even<-x[seq(from=2,to=length(x),by=2)]

#练习二

# 2.1 将自己的姓名、学号,性别,生日,以字符形式存放在向量m中。

m<-c("Tony","2020110","Male","1998.8.1")

# 2.2 为我们班30名学员产生一个编号,编号是NJU16-1, NJU16-2,……, NJU16-30,赋值给向量n。

n<-paste("NJU16",1:30,sep="-")

#seq: 连接的字符串

#paste (…, sep = " ", collapse = NULL)

#paste0()

# 2.3 仅保留30名学员编号中含”8”的编号。

n[grep("8",n)]

#grep函数和正则表达式一起进行筛选查询

#具体见“正则表达式.txt”

# 2.4 根据讲授的内容,你有几种方法实现以下的内容:

# 2.5 请将”I Like You”的动词取出。

statement<-"I Like You"

verb<-substr(statement,3,6)

# 2.6 请将”I Like You”替换为”I Love You”。

substr(statement,3,6) <- "Love"

statement

# 2.7 请将个人信息”Jack,Male,35,worker”分别取出。

strsplit("Jack,Male,35,worker",split=",")

#strsplit:拆分字符向量的元素

# 2.8 请将”+86-021-88681188Ext1”中的主机号取出。

substr("+86-021-88681188Ext1",5,16)

#练习三

# 3.1 计算mtcars数据中mpg、cyl、hp、drat的最小值、最大值、均数、标准差、中位数、25%分位数、75%分位数。

mpg<- data.frame(min(mtcars$mpg),max(mtcars$mpg),mean(mtcars$mpg),sd(mtcars$mpg),median(mtcars$mpg),quantile(mtcars$mpg,0.25),quantile(mtcars$mpg,0.75))

# 3.2 能否找到hp最大、最小的个体,请给出其个体编号。

hp_max <- which.max(mtcars$hp)

hp_max <- which(mtcars$hp==max(mtcars$hp))

hp_min<- which.min(mtcars$hp)

hp_min<- which(mtcars$hp==min(mtcars$hp))

# 3.3 请判断cyl中的取值有哪几个?能否给出每个取值的人数。

unique(mtcars$cyl)

table(mtcars$cyl)

# 3.4 请将hp大于均数的样本取出来。

sample <- mtcars[which(mtcars$hp>mean(mtcars$hp)),]

#练习四

#将下列使用excel创建下列数据,并分别保存为.csv格式,将

#导入R(提示:read.csv),转存为.Rdata

setwd("")

data <- read.csv("data.csv",header = TRUE)

save(read.data,file="read.Rdata")



练习三

# 1.

mean_res <- aggregate(mtcars,list(mtcars$cyl),mean)

boxplot(mpg ~ cyl, data=mtcars,

        main="Car Mileage Data",

        xlab="Number of Cylinders",

        ylab="Miles Per Gallon",

        col = c('red','blue','green'))

points(2,c(mean_res$mpg[2]+5),col='red',

      pch = 8)

lines(1:3,mean_res$mpg,col = grey(0.5),lwd=2,lty = 6)

points(1:3,mean_res$mpg,col = grey(0.5),lwd=2,pch = 14)

# 2.

x <- c(1:10)

y <- x

z <- 10/x

opar <- par(no.readonly=TRUE)

#保存初始设置;因为par()函数对于图形参数的改变是永久性的,但我们有时候只需要调用一次par()对图形的改变

par(pin=c(4,3))

#pin:设置当前图的长宽

plot(x, y, type="b",

    pch=21, col="red",

    yaxt="n", lty=3, ann=FALSE)

lines(x, z, type="b", pch=22, col="blue", lty=2)

axis(2, at=x, labels=x, col.axis="red", las=2)

axis(4, at=z, labels=round(z, digits=2),

    col.axis="blue",  cex.axis=0.7, tck=-.01)

mtext("y=10/x", side=4, line=3, cex.lab=1, las=3, col="blue")

#mtext:在边缘添加文本,m表示marginal

#side      1=下,2=左,3=上,4=右

#line:离图形边缘的距离

#cex.lab:坐标轴标签;cex.main:图形标题;cex.sub:副标题;cex.axis:坐标轴刻度标签

#las:水平或垂直【标签/坐标轴刻度标签】

title("An Example of Creative Axes",

      xlab="X values",

      ylab="Y=X")

par(opar)

##还原原始全局变量定义

# 3.

opar <- par(no.readonly=TRUE)

par(mfrow=c(2, 2),cex.lab = 1.5,mar = c(6,6,2,2))

#mfrow/mfcol:画布切割;mfrow=c(nrow,ncol)表示将画布切分成n行m列

#mar/mai:设置图形边界空白宽度,控制绘图面积的大小,分别对应图形下、左、上、右的边界宽度;前者取值单位是线条宽度,后者取值单位是英寸

plot(mtcars$wt,mtcars$mpg,xlab = 'wt',ylab = 'mpg') 

plot(factor(mtcars$cyl),mtcars$mpg,xlab = 'cyl',ylab = 'mpg') 

## boxplot(mpg~cyl,data=mtcars)

plot(factor(mtcars$cyl),factor(mtcars$gear),

    xlab = 'gear',ylab = 'cyl') 

##

# count_ <- table(mtcars$gear,mtcars$cyl)

# barplot(count_,axes=F,xlab = 'gear',ylab = 'cyl')

count_ <- table( mtcars$cyl)

pie(count_, labels = paste0("cyl_",names(count_)),radius = 1.2)

par(opar)

# 4.

pdf("mygraph.pdf",width = 7,height = 5)

  opar <- par(no.readonly=TRUE)

  par(fig=c(0, 0.8, 0, 0.8))

#fig:当前图形的坐标位置,假设原先画布的宽度为w,0表示新图形的左边框和原图形的左边框之间的距离是w的0%;0.8表示新图形的右边框和原图形的左边框之间的距离是w的80%;后面两个是高度,0表示下边框和下边框,0.8表示上边框和下边框

  plot(mtcars$wt, mtcars$mpg,

      xlab="Miles Per Gallon",

      ylab="Car Weight")

  par(fig=c(0, 0.8, 0.45, 1), new=TRUE)

#new=T:表示在当前图形上添加一副新的图的图形的坐标位置

  boxplot(mtcars$wt, horizontal=TRUE, axes=FALSE)

#horizontal:表示逻辑参数,是否横向放置箱线图

#axes:表示不显示坐标轴

  par(fig=c(0.65, 1, 0, 0.8), new=TRUE)

  boxplot(mtcars$mpg, axes=FALSE)

  par(opar)

dev.off()

#dev.off()函数:表示关闭指定设备【eg.绘图框]


练习四

library(dplyr)

library(tidyr)

library(ggplot2)  #高级绘图

# 1.箱线图

mtcars$cyl<-factor(mtcars$cyl)

ggplot(mtcars, aes(x=cyl, y=mpg)) +

  geom_boxplot( color="black", notch=TRUE,fill = c('red','blue','green'))+ #箱线图

  labs(x ="Number of Cylinders" ,y="Miles Per Gallon")+  #labels

  geom_point(position="jitter", color="blue", alpha=.5)  #点图

# 2.随数值变化散点图 size=disp

ggplot(mtcars, aes(x=wt, y=mpg, size=disp)) +

  geom_point(shape=21, color="black", fill="cornsilk") + 

  labs(x="Weight", y="Miles Per Gallon", size="Engine\nDisplacement")

# 3.

library(gridExtra)  #线格包

p1 <- ggplot(data =mtcars ) + geom_point(aes(x=wt,y=mpg)) #散点图

p2 <- ggplot(data =mtcars ) + geom_bar(aes(x= am,fill = cyl),position = 'fill')

grid.arrange(p1,p2, ncol=2) #两图整合

# 4.生存曲线

seq<-read.table("C:\\Users\\Administrator\\Desktop\\R语言实验课4\\tcga-01-seq.txt",header=T)

clinical_data<-read.table("C:\\Users\\Administrator\\Desktop\\R语言实验课4\\tcga-clinical data.txt",header=T)

clinical_data$patient.bcr_patient_barcode<-toupper(clinical_data$patient.bcr_patient_barcode)

data<- merge(clinical_data,seq,by="patient.bcr_patient_barcode")

library(survival)

fit <- survfit(Surv(survival_time, patient.vital_status) ~ SAV1_exp, data = data2)

plot(fit, col=c("green","red"),ylab="Estimated survival function",xlab="Survival Time (days)")

text(2150,0.75,"log-rank P<0.0001")

legend(500, .95, c("SAV1_high", "SAV1_low"),lty = 1:1, col=c("red","green"))

library("survminer")

b=ggsurvplot(fit,surv.median.line = "hv" , conf.int = TRUE, cumcensor = TRUE,pval = TRUE, xlab="OS (months)",ylab="Survival probability",palette=c("#E7B800", "#2E9FDF"),legend.labs =c("SAV1_low","SAV1_high")  )

练习五

library(dplyr)

library(tidyr)

library(ggplot2)

# 练习1 调查某美发店上半年各月顾客数量,如表所示. 问该店每月的顾客数量是否服从均匀分布?

ex1 <- c(27, 18, 15, 24, 36, 30)

ks.test(ex1,y = 'runif')

# p-value = 3.8e-06

# 练习2 从某地区高中二年级学生中随机抽取45位学生测得他们的体重,

#      问该地区学生的体重是否服从正态分布?

ex2 <- c(36,36,37,38,40,42,43,43,44,45,48,48,50,50,51,

          52,53,54,54,56,57,57,57,58,58,58,58,58,59,60,

          61,61,61,62,62,63,63,65,66,68,68,70,73,73,75)

shapiro.test(ex2)

# p-value = 0.2868

# 练习3 美国某年总统选举前,由社会调查总部抽查黑白种族与支持不同政党是否有关,

#      问不同种族与支持持政党之间是否存在独立性?

ex3 <- data.frame(nrow = c(1,1,1,2,2,2),

                  ncol = c(1,2,3,1,2,3),

                  freq = c(341,405,105,103,11,15))

tab = xtabs(freq~nrow+ncol,data = ex3)

tab

x <- matrix(c(341,103,405,11,105,15),2,3)

x

chisq.test(tab)

chisq.test(x)

# p-value < 2.2e-16

# p-value < 2.2e-16

# 练习4 以淀粉为原料生产葡萄的过程中, 残留许多糖蜜, 可作为生产酱色的原料.

#      在生产酱色的过程之前应尽可能彻彻底底除杂, 以保证酱色质量.为此对除杂方法进行选择.

#      在实验中选用5种不同的除杂方法, 每种方法做4次试验, 即重复4次

X<-c(25.6, 22.2, 28.0, 29.8, 24.4, 30.0, 29.0, 27.5, 25.0, 27.7,

    23.0, 32.2, 28.8, 28.0, 31.5, 25.9, 20.6, 21.2, 22.0, 21.2)

A<-factor(rep(1:5, each=4))

ex4<-data.frame(X, A)

aov.mis<-aov(X~A, data=ex4)

summary(aov.mis)

plot(ex4$X~ex4$A)

plot(TukeyHSD(aov.mis))

pairwise.t.test(X, A, p.adjust.method="none")

pairwise.t.test(X, A, p.adjust.method="bonferroni")

# 练习5 为研究A、B、C三种饲料对猪的催肥效果, 用每种饲料喂养8头猪一段时间,

#      测得每头猪的初始重量(X)和增重(Y), 数据见表,试分析三种饲料对猪的催肥效果是否相同?

group <-rep(c("A","B","C"),each=8)

X <- c(15,13,11,12,12,16,14,17,17,16,

            18,18,21,22,19,18,22,24,20,23,

            25,27,30,32)

Y <-c(85,83,65,76,80,91,84,90,97,90,

            100,95,103,106,99,94,89,91,83,

            95,100,102,105,110)

ex5<-data.frame(group,X,Y)

outcome5 <- aov(Y ~ X + group , data=ex5)

summary(outcome5)

#            Df Sum Sq Mean Sq F value  Pr(>F)   

# X            1 1621.1  1621.1  142.44 1.50e-10 ***

# group        2  707.2  353.6  31.07 7.32e-07 ***

# Residuals  20  227.6    11.4                   

# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

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

推荐阅读更多精彩内容

  • 实验一 #练习一 # 1.1 产生一个等差数列(1,3,5,7,……,99)赋值给向量x,尝试不同的方式。 #1....
    boummice阅读 461评论 0 0
  • 刘小泽写于2018.8.27-28我们日常使用R一般不会使用它的编程工作(即写R包的任务),许许多多的的生信函数、...
    刘小泽阅读 27,426评论 1 27
  • ->点击访问个人博客地址,相互交流学习<- 上一篇:[R语言——进阶篇](https://www.jianshu....
    JackHCC阅读 4,204评论 0 1
  • 这是英文版的第9、10、11章 第9章是Introduction,没啥好讲的第11章import部分我一点都不熟,...
    城管大队哈队长阅读 483评论 2 1
  • 第一课:安装与基本操作 R的扩展包在R官网CRAN;另外,R官网还包含很多扩展资料,包括源代码,手册,FAQ,推荐...
    lizi_sjtu阅读 636评论 0 0