day7—xiaode

1.基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)

1.1 向量

# 創(chuàng)建向量a <-c(1, 2, 3, 4, 5, 6)

b<-c("one", "two", "three")

c<-c(TRUE, FALSE, TRUE, TRUE, FALSE)#向量索引a[2] #第二個(gè)元素a[-2] #刪除第二個(gè)元素a[c(2:4)] #取出第二到第四個(gè)元素[1] 2[1] 2[1] 1 3 4 5 6

圖片


1.2 矩陣

#創(chuàng)建矩陣mymat <- matrix(c(1:10), nrow=2, ncol=5, byrow=TRUE)#矩陣索引mymat[2,] #取第二行mymat[,2] #取第二列mymat[1,5] #第一行第五列的元素

圖片


1.3 數(shù)組

#創(chuàng)建數(shù)組myarr <- array(c(1:12),dim=c(2,3,2))

dim(myarr) #取矩陣或數(shù)組的維度myarr[1,2,1] #取第一個(gè)矩陣的第一行第二列

1.4 數(shù)據(jù)框

圖片




圖片


# 創(chuàng)建數(shù)據(jù)框kids <- c("Wang", "Li")

age <- c("18", "16")

df <- data.frame(kids, age)#數(shù)據(jù)框索引df[1,] #第一行df[,2] #第二列df[1:2,1:2]#前兩行噪馏,前兩列df$kids #根據(jù)列名稱(chēng)#數(shù)據(jù)框常用函數(shù)str(df) #數(shù)據(jù)框的結(jié)構(gòu)rownames(df) #行名稱(chēng)colnames(df) #列名稱(chēng)


1.4.1 因子變量

變量:類(lèi)別變量聊训,數(shù)值變量

類(lèi)別數(shù)據(jù)對(duì)于分組數(shù)據(jù)研究非常有用。(男女注益,高中低)

R中的因子變量類(lèi)似于類(lèi)別數(shù)據(jù)舶沿。


#向量因子化status<-c("Poor", "Improved", "Excellent", "Poor")

status<-factor(status,ordered=TRUE,

? ? levels= c("Poor","Improved", "Excellent"),

? ? labels=c("P","I","E"))

index <- sample(1:100,75)

plotdata <- data.frame(index,status)

attach(plotdata)

boxplot(index~status,col="red")

圖片類(lèi)別變量墙杯,有序變量稱(chēng)為因子,決定了數(shù)據(jù)的分析方式和視覺(jué)呈現(xiàn)形式


Attach()可以將數(shù)據(jù)框添加到R的搜索路徑中暑椰,當(dāng)R遇到一個(gè)變量名后霍转,將檢測(cè)搜索路徑中的數(shù)據(jù)框,定位這個(gè)變量



1.5 列表

列表以一種簡(jiǎn)單的方式組織和調(diào)用不相干的信息一汽,R函數(shù)的許多運(yùn)行結(jié)果都是以列表的形式返回


#創(chuàng)建列表lis <- list(name='fred',

? ? wife='mary',

? ? no.children=3,

? ? child.ages=c(4,7,9))#列表索引lis$name #列表組件名lis[[1]] #列表位置訪問(wèn)

常用函數(shù)

圖片


圖片


R流程控制

圖片


p <- 0.1

if(p<=0.05){? print("p<=0.05!")

}else{? print("p>0.05!")

}

圖片


for(i in 1:10) {? print(i)

}

i <- 1while(i<10)

? {? ? print(i)

? ? i <- i + 1

? }

圖片


v <- LETTERS[1:6]for (i in v){? if(i == 'D'){

? ? next

? }? print(i)

}

圖片


v <- LETTERS[1:6]for (i in v){? if(i == 'D'){? ? break

? }? print(i)

}


2.5 R函數(shù)

函數(shù)是組織好的避消,可重復(fù)使用的,用來(lái)實(shí)現(xiàn)單一召夹,或相關(guān)聯(lián)功能的代碼段


rcal<-function(x,y){

? z <- x^2 + y^2;

? result<-sqrt(z) ;

? result;

}

rcal(3,4)# 調(diào)用函數(shù)


3. 讀寫(xiě)數(shù)據(jù)

#數(shù)據(jù)讀入

getwd()

setwd('C:/Users/Administrator/Desktop/file')

dir()

top<-read.table("otu_table.p10.relative.tran.xls",header=T,row.names=1,sep='\t',stringsAsFactors = F)

top10<-t(top)

head(top10, n=2)#數(shù)據(jù)寫(xiě)出logtop10<-log(top10+0.000001)

write.csv(logtop10,file="logtop10.csv", quote=FALSE,? row.names = TRUE)

write.table(logtop10,file="logtop10.xls",sep="\t", quote=FALSE,

? ? row.names = TRUE, col.names = TRUE)

其他常用函數(shù)


圖片



4.數(shù)據(jù)清理

圖片



4.1 tidyr包

tidyr包的四個(gè)函數(shù)

寬數(shù)據(jù)轉(zhuǎn)為長(zhǎng)數(shù)據(jù):gather()

長(zhǎng)數(shù)據(jù)轉(zhuǎn)為寬數(shù)據(jù):spread()

多列合并為一列: unite()

將一列分離為多列:separate()


library(tidyr)

gene_exp <- read.table('geneExp.csv',header = T,sep=',',stringsAsFactors = F)

head(gene_exp) #gather 寬數(shù)據(jù)轉(zhuǎn)為長(zhǎng)數(shù)據(jù)gene_exp_tidy <- gather(data = gene_exp, key = "sample_name", value = "expression", -GeneID)

head(gene_exp_tidy)#spread 長(zhǎng)數(shù)據(jù)轉(zhuǎn)為寬數(shù)據(jù)gene_exp_tidy2<-spread(data = gene_exp_tidy, key = "sample_name", value = "expression")

head(gene_exp_tidy2)

圖片




4.2 dplyr包

dplyr包五個(gè)函數(shù)用法:

篩選: filter

排列: arrange()

選擇: select()

變形: mutate()

匯總: summarise()

分組: group_by()


library(tidyr)

library(dplyr)

gene_exp <- read.table("geneExp.csv",header=T,sep=",",stringsAsFactors = F)

gene_exp_tidy <- gather(data = gene_exp, key = "sample_name", value = "expression", -GeneID)#arrange 數(shù)據(jù)排列g(shù)ene_exp_GeneID <- arrange(gene_exp_tidy, GeneID)#降序加deschead(gene_exp_GeneID )#filter 數(shù)據(jù)按條件篩選gene_exp_fiter <- filter(gene_exp_GeneID ,expression>10)

head(gene_exp_fiter)#select 選擇對(duì)應(yīng)的列g(shù)ene_exp_select <- select(gene_exp_fiter ,sample_name,expression)

head(gene_exp_select)

圖片



5. 繪圖

圖片



5.1 長(zhǎng)數(shù)據(jù)與寬數(shù)據(jù)

圖片


library(tidyr)

library(ggplot2)#基礎(chǔ)繪圖file <- read.table("geneExp.csv",header=T,sep=",",stringsAsFactors = F,row.names = 1)#寬數(shù)據(jù)file

barplot(as.matrix(file),names.arg = colnames(file), beside =T ,col=terrain.colors(6))

legend("topleft",legend = rownames(file),fill = terrain.colors(6))#ggplot2繪圖gene_exp <- read.table("geneExp.csv",header=T,sep=",",stringsAsFactors = F)

gene_exp_tidy <- gather(data = gene_exp, key = "sample_name", value = "expression", -GeneID)#長(zhǎng)數(shù)據(jù)head(gene_exp_tidy)

ggplot(gene_exp_tidy,aes(x=sample_name,y=expression,fill=GeneID)) + geom_bar(stat='identity',position='dodge')

圖片



5.2 圖形參數(shù)位置

圖片


x <- rnorm(20, 2, 1)

y <- rnorm(20, 4, 2)

plot(x, y, cex=c(1:3), type="p", pch=19, col = "blue",

? ? cex.axis=1.5, col.axis="darkgreen", font.axis=2,

? ? main="這是主標(biāo)題:plot初試", font.main=2, cex.main=2, col.main="green",

? ? sub="這是副標(biāo)題:圖1", font.sub=3, cex.sub=1.5, col.sub="red",

? ? xlab="這是x軸標(biāo)簽", ylab="這是y軸標(biāo)簽",cex.lab=1.5, font.lab=2, col.lab="grey20",

? ? xlim=c(0,3), ylim=c(0,7))

abline(h=2, v=3, lty=1:2, lwd=2,col="red")

legend("topright", legend="我是圖例\n我在這兒",

? ? ? text.col="red", text.width=0.5)#Rnorm正態(tài)分布 個(gè)數(shù) 平均值 標(biāo)準(zhǔn)差 plot是泛型函數(shù)岩喷,根據(jù)輸入類(lèi)型的不同而變化#Type p 代表點(diǎn) l 代表線 b 代表兩者疊加

圖片


圖形參數(shù):

符號(hào)和線條:pch、cex监憎、lty纱意、lwd

顏色:col、col.axis鲸阔、col.lab偷霉、col.main、col.sub褐筛、fg类少、bg

文本屬性:cex、cex.axis渔扎、cex.lab硫狞、cex.main、cex.sub晃痴、font残吩、font.axis、font.lab倘核、font.main泣侮、font.sub


文本添加、坐標(biāo)軸的自定義和圖例

title()紧唱、main旁瘫、sub祖凫、xlab琼蚯、ylab酬凳、text()

axis()、abline()

legend()


多圖繪制時(shí)候遭庶,可使用par()設(shè)置默認(rèn)的圖形參數(shù)

par(lwd=2, cex=1.5)


圖形參數(shù)設(shè)置:

par(optionname=value,…)

par(pin=c(width,height)) 圖形尺寸

par(mfrow=c(nr,nc)) 圖形組合宁仔,一頁(yè)多圖

layout(mat) 圖形組合,一頁(yè)多圖

par(mar=c(bottom,left,top,right)) 邊界尺寸

par(fig=c(x1,x2,y1,y2),new=TURE) 多圖疊加或排布成一幅圖


#圖形組合:attach(mtcars)

opar <- par(no.readonly=TRUE) #復(fù)制當(dāng)前圖形參數(shù)設(shè)置par(mfrow=c(2,2))#設(shè)置圖形參數(shù)#layout(matrix(c(1,2,2,3),2,2,byrow=TRUE))plot(wt,mpg,main="Scatterplot of wt vs mpg")

hist(wt,main="Histogram of wt")

boxplot(wt,main="Boxplot of wt")

par(opar) #返回原始圖形參數(shù)detach(mtcars)

圖片


5.3 柱形圖

file <- read.table("barData.csv",header=T,row.names=1,sep=",",stringsAsFactors = F)

dataxx <- as.matrix(file) #轉(zhuǎn)化為矩陣cols <- terrain.colors(3) #抽取顏色#誤差線函數(shù)plot.error <- function(x, y, sd, len = 1, col = "black") {

? len <- len * 0.05

? ? arrows(x0 = x, y0 = y, x1 = x, y1 = y - sd, col = col, angle = 90, length = len)

? ? arrows(x0 = x, y0 = y, x1 = x, y1 = y + sd, col = col, angle = 90, length = len)

}

x <- barplot(dataxx, offset = 0, ylim=c(0, max(dataxx) * 1.1),axis.lty = 1, names.arg = colnames(dataxx), col = cols, beside = TRUE)

box()

legend("topright", legend = rownames(dataxx), fill = cols, box.col = "transparent")

title(main = "An example of barplot", xlab = "Sample", ylab = "Value")

sd <- dataxx * 0.1 for (i in 1:3) {

? plot.error(x[i, ], dataxx[i, ], sd = sd[i, ])

}

圖片


5.4 二元圖

圖片


matdata <- read.table("plot_observed_species.xls", header=T)

tbl_df(matdata) #查看數(shù)據(jù)屬性和結(jié)構(gòu)y<-matdata[,2:145]

attach(matdata)

matplot(series,y,

? ? ? ? ylab="Observed Species Number",xlab="Sequences Number",

? ? ? ? lty=1,lwd=2,type="l",col=1:145,cex.lab=1.2,cex.axis=0.8)

legend("topleft",lty=1, lwd=2, legend=names(y)[1:8],

? ? ? cex=0.5,col=1:145)

detach(matdata)

圖片


5.5 餅狀圖

relative<-c(0.270617,0.177584,0.194911,0.054685,0.048903,0.033961, 0.031195,0.188143)

taxon<-c("Sordariales","Pleosporales","Agaricales","Hypocreales",? "Pezizales","Eurotiales","Helotiales","Others")

ratio<-round(relative*100,2)

ratio<-paste(ratio,"%",sep="")

label<-paste(taxon,ratio,sep=" ")

pie(relative,labels=label, main="ITS1-Sample S1",? radius=1,col=rainbow(length(label)),cex=1.3)

library(plotrix)

fan.plot(relative,labels=label,main="Fan plot")

pie3D(relative,labels=label, height=0.2, theta=pi/4, explode=0.1, col=rainbow(length(label)),? border="black",font=2,radius=1,labelcex=0.9)

圖片


5.6 直方圖

seqlength<-rnorm(1000, 350, 30)hist(seqlength,breaks=100,

? ? col="red",freq=FALSE,

? ? main="Histogram with dengsitycurve",? ? ylab="Density", xlab="Sequence length")lines(density(seqlength),col="blue4",lwd=2)

圖片


5.7 聚類(lèi)圖

clu <- read.table("unweighted_unifrac_dm.txt", header=T, row.names=1, sep="\t")

head(clu)

dis <- as.dist(clu)

h <- hclust(dis, method="average")

plot(h, hang = 0.1, axes = T, frame.plot = F, main="Cluster Dendrogram based on unweighted_unifrac", sub="UPGMA")

圖片




5.8 維恩圖

library(VennDiagram)

ven<-list(sample1=20:50,? sample2=c(1:30,50:80), sample3=40:90, sample4=c(10:30,70:100))

venn.diagram(ven, filename='venn.png', cex=1.2, col="black", alpha= 0.50,lwd =1.2, cat.cex=1.4,

? ? ? ? ? ? ? fill=c("cornflowerblue", "green", "Gold1","darkorchid1"),? margin=0.15)

圖片


圖片輸出

直接導(dǎo)出




圖片


命令


pdf(file="file.pdf", width=7, height=10)

png(file="file.png",width=480,height=480)

jpeg(file="file.png",width=480,height=480)

tiff(file="file.png",width=480,height=480)


dev.off()

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末峦睡,一起剝皮案震驚了整個(gè)濱河市翎苫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌榨了,老刑警劉巖煎谍,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異龙屉,居然都是意外死亡呐粘,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)转捕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)作岖,“玉大人,你說(shuō)我怎么就攤上這事五芝《焕埽” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵枢步,是天一觀的道長(zhǎng)沉删。 經(jīng)常有香客問(wèn)我,道長(zhǎng)醉途,這世上最難降的妖魔是什么矾瑰? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮结蟋,結(jié)果婚禮上脯倚,老公的妹妹穿的比我還像新娘。我一直安慰自己嵌屎,他們只是感情好推正,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著宝惰,像睡著了一般植榕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上尼夺,一...
    開(kāi)封第一講書(shū)人閱讀 51,754評(píng)論 1 307
  • 那天尊残,我揣著相機(jī)與錄音炒瘸,去河邊找鬼。 笑死寝衫,一個(gè)胖子當(dāng)著我的面吹牛顷扩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播慰毅,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼隘截,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了汹胃?” 一聲冷哼從身側(cè)響起婶芭,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎着饥,沒(méi)想到半個(gè)月后犀农,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宰掉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年呵哨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贵扰。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡仇穗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出戚绕,到底是詐尸還是另有隱情纹坐,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布舞丛,位于F島的核電站耘子,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏球切。R本人自食惡果不足惜谷誓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望吨凑。 院中可真熱鬧捍歪,春花似錦、人聲如沸鸵钝。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)恩商。三九已至变逃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間怠堪,已是汗流浹背揽乱。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工名眉, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人凰棉。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓损拢,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親渊啰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子探橱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容