今天的學(xué)習(xí)內(nèi)容是R語言的基本數(shù)據(jù)結(jié)構(gòu):
Day5學(xué)習(xí)內(nèi)容.png
在這些數(shù)據(jù)類型里晓避,我們主要學(xué)習(xí)的是向量與數(shù)據(jù)框這兩種只壳。
1、向量
(1)區(qū)分標(biāo)量和向量
- 元素:數(shù)字或字符串(使用時要加引號)
- 標(biāo)量:一個元素組成的變量
- 向量:多個元素組成的變量锅必,有序排列
使用時惕艳,一般都會直接給變量定義,也就是“賦值”尔许,字面意思是賦予這個變量一個數(shù)值(或者是字符串/數(shù)據(jù)框等)终娃。
x<- c(1,2,3) #由元素1,2棠耕,3組成的向量
x<- 1:10 #從1-10之間所有的整數(shù)
x<- seq(1,10,by = 0.5) #1-10之間每隔0.5取一個數(shù)
x<- rep(1:3,times=2) #1-3窍荧,重復(fù)2次
賦值結(jié)果如下:
賦值.png
(2)從向量中提取元素
- 根據(jù)元素的位置
x[3] #第3個元素
x[-3] #排除法,除了第3個元素之外剩余的元素
x[1:3] #第1-3個元素
x[-(1:3)] #除了第1-3個元素
x[c(1,3)] #第1個和第3個元素
以向量(1郊楣,2瓤荔,3,1今瀑,2,3)為例橘荠,提取元素:根據(jù)位置提取元素.png
- 根據(jù)值
x[x==1] #等于1的元素
x[x<2] #小于2的元素
x[x %in% c(1,2,5)] #存在于向量c(1,2,5)中的元素
同樣以向量(1哥童,2,3匀泊,1错邦,2,3)為例撬呢,提取元素:根據(jù)值提取元素.png
2魂拦、數(shù)據(jù)框
- 首先要將示例數(shù)據(jù)放在工作目錄下
(1)讀取本地數(shù)據(jù)
讀取本地數(shù)據(jù).png
sep參數(shù)用來指定字符的分隔符號,常用的有
sep = ","
箱靴、sep = "\t"
和sep = " "
荷愕。header = FALSE
表示第一行即為具體數(shù)據(jù),header = TRUE
表示第一行用于列名稱抛杨,具體數(shù)據(jù)從第二行開始荐类。
(2)設(shè)置行名和列名
X<-read.csv('doudou.txt') #在示例數(shù)據(jù)里有doudou.txt,這里的變量X是一個數(shù)據(jù)框
colnames(X) #查看列名
rownames(X) #查看行名玉罐,默認(rèn)行名就是行號吊输,1、2璧亚、3脂信、4...
colnames(X)[1]<-"bioplanet" #修改第一列列名
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)
分隔符改為逗號,字符串不加雙引號疯搅。
(4)變量的保存與重新加載
沒有處理完的數(shù)據(jù)下次想接著用要進行保存,格式是RData罪治。
save.image(file="bioinfoplanet.RData") #保存當(dāng)前所有變量
save(X,file="test.RData") #保存其中一個變量
load("test.RData") #再次使用RData時的加載命令
(5)提取元素
X[a,b] #第a行第b列
X[a,] #第a行
X[,b] #第b列
X[b] #也是第b列
X[a:b] #第a到b列
X[c(a,b)] #第a和第b列
X$列名 #提取某一個特定的列
(6)直接使用數(shù)據(jù)框中的變量
iris是R語言的內(nèi)置數(shù)據(jù)礁蔗,可以直接使用。提取某兩列作散點圖:
plot(iris$Sepal.Length,iris$Sepal.Width)
plot.png
腳本的使用和保存:
- 將代碼復(fù)制或手打到一個新的R腳本中
- 然后保存到工作目錄下
- 打開發(fā)現(xiàn)腳本文件的后綴就是R
- 要用時直接找到它晒骇,用Rstudio打開
3磺浙、作業(yè)
問題:save(X,file="test.RData")
這句代碼如果報錯object X not found撕氧,是為什么,應(yīng)該怎么解決伦泥?
答:出現(xiàn)object X not found說明賦值出了問題,可能是沒有區(qū)分大小寫府怯。所以將X進行正確的賦值即可跨新。
本學(xué)習(xí)內(nèi)容參考微信公眾號:生信星球