R語言的數(shù)據(jù)結構
數(shù)據(jù)類型
數(shù)據(jù)類型有很多種
向量(verctor)
矩陣(matrix)
數(shù)組(array)
數(shù)據(jù)框(data frame)
List
向量(Vector)
1否彩、標量和向量
元素 梧税,指數(shù)字或字符串(chr)
標量,一個元素組成的變量
向量,兩個元素組成的變量(或許意思是向量比標量多了一個維度姆怪?)
2溯乒、變量的賦值, <-
x<- c(1,2,3) #常用的向量寫法匪煌,意為將x定義為由元素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 重復2次
3霜医、從向量中提取元素:通過英文的中括號來表示提取
1齿拂、根據(jù)元素的位置
x[4] #x第4個元素
x[-4]#排除法,除了第4個元素之外剩余的元素
x[2:4]#第2到4個元素
x[-(2:4)]#除了第2-4個元素
x[c(1,5)] #第1個和第5個元素
2肴敛、根據(jù)值
x[x==10]#等于10的元素
x[x<0]
x[x %in% c(1,2,5)]#存在于向量c(1署海,2,5)中的元素
數(shù)據(jù)框(Data frame)
1医男、讀取數(shù)據(jù)
從工作目錄中讀取huahua.txt
a <- read.table(file = 'huahua.txt',sep = '\t',header = T)
sep:文件中的字段分離符砸狞,用于文件數(shù)據(jù)文本的讀取和保存過程中指定分割符號。
csv 文件 sep = “,” # 以逗號分割
txt 文件 sep = “\t” #以制表符分割
其他文件 sep = " " #以空格分割
header:一個邏輯值镀梭,指文件是否包含變量名作為第一行刀森。如果缺少,則根據(jù)文件格式確定該值:當且僅當?shù)谝恍邪淖侄紊儆诹袛?shù)時丰辣,header設置為TRUE
2撒强、設置行名和列名
X<-read.csv('doudou.txt') #在示例數(shù)據(jù)里有doudou.txt 注意這里的變量X是一個數(shù)據(jù)框
colnames(X) #查看列名
rownames(X) #查看行名,默認值的行名就是行號,1.2.3.4...
colnames(X)[1]<-"bioplanet"#有的公司返回數(shù)據(jù)笙什,左上角第一格為空飘哨,R會自動補為x,用這個命令來修改
X<-read.csv(file = "huahua.txt",sep = " ",header =T,row.names=1)#最后row.names的意思是修改第一列為行名
**ps: **發(fā)現(xiàn)如果直接復制一個照片在markdown里直接粘貼就會自動插入圖片!
3琐凭、導出data frame
write.table(X,file = 'yu.txt',sep = ',',quote = F)
4芽隆、變量的保存與重新加載
save.image(file="bioinfoplanet.RData")#保存當前所有變量
save(X,file="test.RData")#保存其中一個變量
load("test.RData")#再次使用RData時的加載命令
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)秀寫法统屈,而且這個命令還優(yōu)秀到不用寫括號的地步胚吁,并且支持Tab自動補全哦,不過只能提取一列)
作業(yè):報錯的意思是X這個對象不存在愁憔,所以可能是一開始就沒有建好這個對象腕扶,會不會要么沒有建,要么建錯了?
問題:元素只可能是數(shù)字/字符串吨掌? 文本元素呢半抱?