R語言練習題-初級

原帖鏈接: 生信菜鳥團

R語言基礎(chǔ)知識的一些檢驗兼砖,最好是對照幾本R基礎(chǔ)語法書籍來理解语婴。

全部答案及視頻在:https://github.com/jmzeng1314/R_bilibili

首先做完了周末班工作儒飒, 包括軟件安裝以及R包安裝:http://www.bio-info-trainee.com/3727.html

打開 Rstudio 告訴我它的工作目錄颈将。

getwd()

新建6個向量锻霎,基于不同的原子類型嫉称。(重點是字符串茬暇,數(shù)值霹期,邏輯值)

a <- c(1,2,3,4)
b <- c("hello","world","!")
d <- c(FALSE, TRUE, T, F) #注意大小寫
e <- c(1+0i, 2+4i)                #complex
f <- c(1:4)              # integer; or f <- c(1L,2L,3L,4L)  
print(class(f))
g <- charToRaw("Hello");  # raw(?)
print(class(g)) 
> [1] "raw"

告訴我在你打開的rstudio里面 getwd() 代碼運行后返回的是什么?

當前工作目錄

新建一些數(shù)據(jù)結(jié)構(gòu)快压,比如矩陣圆仔,數(shù)組,數(shù)據(jù)框蔫劣,列表等坪郭。(重點是數(shù)據(jù)框,矩陣)

myvector <- c(1,2,3,4)  #包括數(shù)據(jù)向量脉幢、邏輯向量截粗、字符串向量
myfactor <- c('green','green','yellow','red','red','red','green')
mymatrix <- matrix( c('a','a','b','c','b','a'), nrow = 2, ncol = 3, byrow = TRUE)
myarray <- array(c('green','yellow'),dim = c(3,3,2))
mydataframe <- data.frame(
   gender = c("Male", "Male","Female"), 
   height = c(152, 172, 165), 
   weight = c(81,93, 78),
   Age = c(42,38,26)
)
# list
a <- "My List"
b <- c(25, 26, 18, 39)
c <- matrix(1:10, nrow=5)
d <- c("one", "two", "three")
mylist <- list(title=a ,b,c,d)

在你新建的數(shù)據(jù)框進行切片操作信姓,比如首先取第1,3行绸罗, 然后取第2,4列

mydf1 <- mydataframe[c(1,3),]
mydf2 <- mydf1[,c(2,4)]  
# method 2
mydf2 <- mydataframe[c(1,3),c(2,4)]

使用data函數(shù)來加載R內(nèi)置數(shù)據(jù)集 rivers 并描述它豆瘫。并且可以查看更多的R語言內(nèi)置的數(shù)據(jù)集:https://mp.weixin.qq.com/s/dZPbCXccTzuj0KkOL7R31g

data("rivers")
class(rivers)
珊蟀?rivers

下載 https://www.ncbi.nlm.nih.gov/sra?term=SRP133642 里面的 RunInfo Table 文件讀入到R里面,了解這個數(shù)據(jù)框外驱,多少列育灸,每一列都是什么屬性的元素(參考B站生信小技巧獲取runinfo table 這是一個單細胞轉(zhuǎn)錄組項目的數(shù)據(jù),共768個細胞)昵宇。如果你找不到RunInfo Table 文件磅崭,可以點擊下載,然后讀入你的R里面也可以瓦哎。

a <- read.csv("sample.csv")
dim(a)
str(a)

下載 https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE111229 里面的樣本信息sample.csv讀入到R里面砸喻,了解這個數(shù)據(jù)框,多少列蒋譬,每一列都是什么屬性的元素割岛。(參考 https://mp.weixin.qq.com/s/fbHMNXOdwiQX5BAlci8brA 獲取樣本信息sample.csv)如果你實在是找不到樣本信息文件sample.csv,也可以點擊下載犯助。

b <- read.table("SraRunTable.txt", header = T,sep = "\t")
dim(b)
str(b)

把前面兩個步驟的兩個表(RunInfo Table 文件癣漆,樣本信息sample.csv)關(guān)聯(lián)起來,使用merge函數(shù)剂买。

Merged_ab <- merge(a, b, by.x = "Accession",by.y = "Sample_Name")

基于下午的統(tǒng)計可視化

對前面讀取的 RunInfo Table 文件在R里面探索其MBases列惠爽,包括: 箱線圖(boxplot)和五分位數(shù)(fivenum),還有頻數(shù)圖(hist)瞬哼,以及密度圖(density) 婚肆。

fivenum(b$MBases)

par(mfrow=c(1,3)) #在一張圖上顯示
boxplot(MBases ~ MBytes, data = b)
plot(density(b$MBases))
hist(b$MBases)

顯示結(jié)果:

> fivenum(b$MBases)
[1]  0  8 12 16 74
Rplot.png

把前面讀取的樣本信息表格的樣本名字 根據(jù)下劃線分割 看第3列元素的統(tǒng)計情況。第3列代表該樣本所在的plate倒槐。

d <- Merged_ab[,c("MBases", "Title")]
save(d, file = "input.Rdata")

rm(list = ls())
options(stringsAsFactors = F)
load(file = "input.Rdata")

e <- lapply(d[,2], function(x){
  x
  strsplit(x,"_")[[1]][3]
})
plate <- unlist(e)

#method 2
plate=unlist(lapply(as.character(d[,2]),function(x){
  x
  strsplit(x,'_')[[1]][3]
  
}))
boxplot(d[,1]~plate)

d$plate <= plate

根據(jù)plate把關(guān)聯(lián)到的 RunInfo Table 信息的MBases列分組檢驗是否有顯著的統(tǒng)計學差異旬痹。

t.test(d[,1]~plate)$p.value

分組繪制箱線圖(boxplot),頻數(shù)圖(hist)讨越,以及密度圖(density) 两残。

# 分組畫出boxplot
d1 <- d[d$plate == '0048',]
d2 <- d[d$plate == '0049',]

par(mfrow=c(1,2))
boxplot(d1$MBases~d1$plate)
boxplot(d2$MBases~d2$plate)

# 分組畫出density
plot(density(d[d$plate == '0048',]$MBases))
plot(density(d[d$plate == '0049',]$MBases))

# 分組畫出histogram
hist((d[d$plate == '0048',]$MBases))
hist((d[d$plate == '0049',]$MBases))
Boxplot-grouped.png

density plot.png

Histograms.png

使用ggplot2把上面的圖進行重新繪制。

library(ggplot2)
colnames(d)
ggplot(d,aes(x=plate,y=MBases))+geom_boxplot()

ggplot(d,aes(x=MBases))+geom_density()

ggplot(d,aes(x=MBases))+geom_histogram(bins = 50)

使用ggpubr把上面的圖進行重新繪制把跨。

library(ggpubr)
p <- ggboxplot(d, x = "plate", y = "MBases",
               color = "plate", palette = "jco",
               add = "jitter")
# Add p-value
p + stat_compare_means(method = 't.test')

ggdensity(d, x = "MBases",
          color = "plate", palette = "jco", rug = T,
          add = "mean")  
#color 可以顯示分組信息人弓;rug是下面的柵欄效果;add是添加none,mean或者median線

gghistogram(d, x =  "MBases",
            color = "plate", palette = "jco",bins = 50,
            add = "mean")
ggpubr_boxplot.png

ggpubr_density.png

ggpubr_hist.png

References:
簡書作者[Forest_Lee] 盤一盤 生信技能樹R語言小作業(yè)(初級)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末着逐,一起剝皮案震驚了整個濱河市崔赌,隨后出現(xiàn)的幾起案子意蛀,更是在濱河造成了極大的恐慌,老刑警劉巖健芭,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件县钥,死亡現(xiàn)場離奇詭異,居然都是意外死亡慈迈,警方通過查閱死者的電腦和手機若贮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來痒留,“玉大人谴麦,你說我怎么就攤上這事∩焱罚” “怎么了匾效?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長恤磷。 經(jīng)常有香客問我面哼,道長,這世上最難降的妖魔是什么碗殷? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任精绎,我火速辦了婚禮,結(jié)果婚禮上锌妻,老公的妹妹穿的比我還像新娘代乃。我一直安慰自己,他們只是感情好仿粹,可當我...
    茶點故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布搁吓。 她就那樣靜靜地躺著,像睡著了一般吭历。 火紅的嫁衣襯著肌膚如雪堕仔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天晌区,我揣著相機與錄音摩骨,去河邊找鬼。 笑死朗若,一個胖子當著我的面吹牛恼五,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播哭懈,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼灾馒,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了遣总?” 一聲冷哼從身側(cè)響起睬罗,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤轨功,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后容达,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體古涧,經(jīng)...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年花盐,在試婚紗的時候發(fā)現(xiàn)自己被綠了蒿褂。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,918評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡卒暂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出娄帖,到底是詐尸還是另有隱情也祠,我是刑警寧澤,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布近速,位于F島的核電站诈嘿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏削葱。R本人自食惡果不足惜奖亚,卻給世界環(huán)境...
    茶點故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望析砸。 院中可真熱鬧昔字,春花似錦、人聲如沸首繁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽弦疮。三九已至夹攒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間胁塞,已是汗流浹背咏尝。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留啸罢,地道東北人编检。 一個月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像伺糠,于是被迫代替她去往敵國和親蒙谓。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,926評論 2 361

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