Day5-數(shù)據(jù)結(jié)構(gòu)
新手tips:
(1)R的賦值符號(hào)不是等號(hào)烤送,而是<-
(2)在Console 控制臺(tái)輸入命令舰涌,相當(dāng)于Linux的命令行
(3)R的代碼都是帶括號(hào)的,括號(hào)必須是英文的胧砰。
(4)顯示工作路命令 getwd()
(5)向量是由元素組成的唉匾,元素可以是數(shù)字或者字符串。
(6)表格在R語(yǔ)言中改名叫數(shù)據(jù)框_
(7)別只復(fù)制代碼铅协,要理解其中的命令捷沸、函數(shù)的意思。函數(shù)或者命令不會(huì)用時(shí)狐史,除了百度/谷歌搜索以外痒给,用這個(gè)命令查看幫助:?read.table,調(diào)出對(duì)應(yīng)的幫助文檔骏全,翻到example部分研究一下苍柏。
(8)數(shù)據(jù)類(lèi)型:向量(vector)、數(shù)據(jù)框(data frame)姜贡、矩陣(matrix)试吁、列表(list)和數(shù)組(array)。生信學(xué)習(xí)者最需要熟悉的是向量和數(shù)據(jù)框楼咳。
part1:向量
- 1.標(biāo)量和向量的區(qū)分
首先明確“元素”的意思熄捍,元素指的是數(shù)字或者字符串(用chr表示)等,根據(jù)它可以區(qū)分兩個(gè)詞:
標(biāo)量:一個(gè)元素組成的變量
向量:多個(gè)元素組成的變量
(一個(gè)向量是一排有序排列的元素母怜,以后會(huì)用到把一個(gè)向量作為數(shù)據(jù)框中的一列的情況余耽。)
x<- c(1,2,3) #常用的向量寫(xiě)法,意為將x定義為由元素1苹熏,2碟贾,3組成的向量。
x<- 1:10 #從1-10之間所有的整數(shù)
x<- seq(1,10,by = 0.5) #1-10之間每隔0.5取一個(gè)數(shù)(注意是逗號(hào)不是分號(hào))
x<- rep(1:3,times=2) #1-3 重復(fù)2次
新手tips:
1.如果你把這幾行代碼都打過(guò)了柜裸,那么x就被你賦值了4次缕陕,結(jié)果就是,第一次賦值被第二次的覆蓋了疙挺,第二次的賦值又被第三次的覆蓋了扛邑,以此類(lèi)推,以最后一次為準(zhǔn)铐然。
- 2.從向量中提取元素
1)根據(jù)元素位置
這里的x是你剛才賦值的變量名蔬崩,根據(jù)自己的情況來(lái)修改
x[4] #x第4個(gè)元素
x[-4]#排除法,除了第4個(gè)元素之外剩余的元素
x[2:4]#第2到4個(gè)元素
x[-(2:4)]#除了第2-4個(gè)元素
x[c(1,5)] #第1個(gè)和第5個(gè)元素
2)根據(jù)值
x[x==10]#等于10的元素
x[x<0]
x[x %in% c(1,2,5)]#存在于向量c(1搀暑,2沥阳,5)中的元素
Part2:數(shù)據(jù)框
將示例數(shù)據(jù)放在你的工作目錄下(重要!W缘恪M┖薄)
用以下命令即可獲得示例數(shù)據(jù)框:
截圖中顯示的NA表示空值
(1)讀取本地?cái)?shù)據(jù)
#通過(guò)read.table(flie,sep,header)讀取一個(gè)文件并轉(zhuǎn)換成一張表
#flie:文件路徑
#sep:數(shù)據(jù)之間的分隔符
#header:第一行是否是表頭,默認(rèn)為false,表示是數(shù)據(jù)
read.table(file = "huahua.txt",sep = "\t",header = T)
a <- read.table(file = "huahua.txt",sep = "\t",header = T)
(2)設(shè)置行名和列名
X<-read.csv('doudou.txt') #在示例數(shù)據(jù)里有doudou.txt 注意這里的變量X是一個(gè)數(shù)據(jù)框
colnames(X) #查看列名
rownames(X) #查看行名,默認(rèn)值的行名就是行號(hào)功炮,1.2.3.4...
colnames(X)[1]<-"bioplanet"#有的公司返回?cái)?shù)據(jù)溅潜,左上角第一格為空,R會(huì)自動(dòng)補(bǔ)為x,用這個(gè)命令來(lái)修改
X<-read.csv(file = "huahua.txt",sep = " ",header =T,row.names=1)#最后row.names的意思是修改第一列為行名
- 3)數(shù)據(jù)框的導(dǎo)出
write.table(X,file = "yu.txt",sep = ",",quote=F)#分隔符改為逗號(hào)薪伏,字符串不加雙引號(hào)(默認(rèn)格式帶由雙引號(hào))
- 4)變量的保存與重新加載
這次沒(méi)有處理完的數(shù)據(jù)下次想接著用怎么辦?--學(xué)會(huì)保存和重新加載滚澜。保存的格式是RData。
save.image(file="bioinfoplanet.RData")#保存當(dāng)前所有變量
save(X,file="test.RData")#保存其中一個(gè)變量
load("test.RData")#再次使用RData時(shí)的加載命令
- 5)提取元素
X[x,y]#第x行第y列
X[x,]#第x行
X[,y]#第y列
X[y] #也是第y列
X[a:b]#第a列到第b列
X[c(a,b)]#第a列和第b列
X$列名#也可以提取列(優(yōu)秀寫(xiě)法嫁怀,而且這個(gè)命令還優(yōu)秀到不用寫(xiě)括號(hào)的地步设捐,并且支持Tab自動(dòng)補(bǔ)全哦,不過(guò)只能提取一列)