R的數(shù)據(jù)結(jié)構(gòu)
R的代碼都是帶括號(hào)的竹捉,括號(hào)必須是英文的。查看命令幫助:?read.table
1. 數(shù)據(jù)類型
- 向量(vector)
- 數(shù)據(jù)框(Data frame)
- 矩陣(Matrix)
- 數(shù)組(Array)
- List
生信几于,最需要熟悉的是向量和數(shù)據(jù)框话侧。
2. 向量(vector)
2.1 變量(標(biāo)量和向量)
2.2 變量賦值
2.3 從向量中提取元素
3 數(shù)據(jù)框
將數(shù)據(jù)放在你的工作目錄下
3.1 讀取本地?cái)?shù)據(jù)
函數(shù) read.table 是讀取矩形格子狀數(shù)據(jù)最為便利的方式。詳細(xì)參見https://www.cnblogs.com/xianghang123/archive/2012/06/06/2538274.html
read.csv益老、read.csv2彪蓬、read.delim是read.table函數(shù)的包裝,分隔符分別對(duì)應(yīng)逗號(hào)捺萌,分號(hào)档冬,制表符,同樣接受read.table所有參數(shù)。
read.csv函數(shù)header參數(shù)默認(rèn)為TRUE酷誓,不同于read.table披坏。https://www.cnblogs.com/zhangduo/p/4440314.html
- sep
通常,打開文件看一下就可以確定文件所使用的字段分隔符盐数,但對(duì)于空白分割的文件棒拂,可以選擇默認(rèn)的sep = "" (它能使用任何空白符作為分隔符,比如空格玫氢,制表符帚屉,換行符), sep = " " 或者 sep = "\t"琐旁。
注意涮阔,分隔符的選擇會(huì)影響輸入的被引用的字符串。
如果你有含有空字段的制表符分割的文件灰殴,一定要使用 sep = "\t" - header
建議明確地設(shè)定 header 參數(shù)敬特。按照慣例,首行只有對(duì)應(yīng)列的字段而沒有行標(biāo)簽對(duì)應(yīng)的字段牺陶。因此伟阔,它會(huì)比余下的行少一個(gè)字段。(如果需要在 R 里面看到這一行掰伸,設(shè)置 header = TRUE皱炉。)
read.table(file="huahua.txt",sep="\t",header=T)
a<-read.table(file="huahua.txt",sep="\t",header=T)
header參數(shù):默認(rèn)為FALSE即數(shù)據(jù)框的列名為V1,V2...,設(shè)置為TRUE時(shí)第一行作為列名
3.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è)命令來修改
x<-read.csv(file = "huahua.txt",sep = " ",header =T,row.names=1)#最后row.names的意思是修改第一列為行名
3.3 數(shù)據(jù)框的導(dǎo)出
write.table(x, file = “”, append = FALSE, quote = TRUE, sep = " ", eol = “\n”, na = “NA”, dec = “.”, row.names = TRUE, col.names = TRUE, qmethod = c(“escape”, “double”), fileEncoding = “”)
x,也就是要寫入文件的變量歧蕉,必須是數(shù)據(jù)框或者矩陣;
file灾部,表示要寫入的文件的路徑,如果是“”的話表示寫入console;
append惯退,邏輯變量赌髓,如果是TRUE,表示在文件后繼續(xù)附加催跪,如果是FALSE锁蠕,則已經(jīng)存在的文件被破壞。
https://blog.csdn.net/happywlg123/java/article/details/84107258
write.table(x,file = "ren.txt",sep = ",",quote=F)#分隔符改為逗號(hào)懊蒸,字符串不加雙引號(hào)(默認(rèn)格式帶由雙引號(hào))
3.4 變量的保存與重新加載
save.image(file="文件名.RData")#保存當(dāng)前所有變量
save(X,file="X1.RData")#保存其中一個(gè)變量
load("X1.RData")#再次使用RData時(shí)的加載命令
注意此處X1得是X數(shù)據(jù)框中的元素荣倾,且注意大小寫
3.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$列名#也可以提取列(這個(gè)命令不用寫括號(hào),并支持Tab自動(dòng)補(bǔ)全骑丸,但只能提取一列)
3.6 直接使用數(shù)據(jù)框中的變量
在R語言中舌仍,對(duì)于串列鳖孤,數(shù)據(jù)框中的數(shù)據(jù)的進(jìn)行操作時(shí),為了避免重復(fù)地鍵入對(duì)象名稱抡笼,可使用attach或with。
內(nèi)容有些復(fù)雜黄鳍,需要繼續(xù)學(xué)
結(jié)語
R數(shù)據(jù)結(jié)構(gòu)比較復(fù)雜推姻,初接觸的我,有非常多不懂的地方框沟,繼續(xù)加油學(xué)習(xí)藏古。