今天的學習內(nèi)容是R語言的數(shù)據(jù)結(jié)構(gòu)
向量
1.標量和向量的區(qū)別
標量:一個元素組成的變量
向量:多個元素組成的變量。一個向量是一排有序排列的元素
2.從向量中提取元素
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ù)框
1.讀取本地數(shù)據(jù)
|read.table(file = "huahua.txt",sep = "\t",header =T)
|a<-read.table(file = "huahua.txt",sep = "\t",header =T)
| header=TRUE代表讀入數(shù)據(jù)時將第一行作為列名(若是FALSE則相反眶拉,不使用文件中第一行作為列名)罗晕,也可以簡寫問header=T(或是header=F)
| sep 是函數(shù)的形式參數(shù)济欢,多數(shù)情況下赠堵, seq 參數(shù)用來指定字符的分隔符號。
| 不僅用在你所提到的輸出法褥,也用在輸入茫叭,也用在字符串的合并與拆分上。
| csv 文件是用逗號分隔的半等,故而 sep = ","
| tsv 文件是用制表符分隔的揍愁,故而 sep = "\t"
| 常用的分隔符還有空格 sep = " "
2.設置行名和列名
| X<-read.csv('doudou.txt') #在示例數(shù)據(jù)里有doudou.txt 注意這里的變量X是一個數(shù)據(jù)框
| colnames(X) #查看列名
| rownames(X) #查看行名,默認值的行名就是行號,1.2.3.4...
| colnames(X)[1]<-"abc"#替換第一列名
| X<-read.csv(file = "huahua.txt",sep = " ",header =T,row.names=1)#最后row.names的意思是把第一列的數(shù)據(jù)改為行名
3.數(shù)據(jù)框的導出
| write.table(X,file = "yu.txt",sep = ",",quote=F)#分隔符改為逗號酱鸭,字符串不加雙引號(默認格式帶由雙引號)
4.變量的保存于重新加載
| #這次沒有處理完的數(shù)據(jù)下次想接著用可以保存和重新加載吗垮。保存的格式是RData垛吗。
| 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自動補全哦怯屉,不過只能提取一列)
6.直接使用數(shù)據(jù)框的變量
iris是R語言的內(nèi)置數(shù)據(jù)蔚舀,可以直接使用。提取某兩列作散點圖:
| plot(iris$Sepal.Length,iris$Sepal.Width)
問題:save(X,file="test.RData")這句代碼如果報錯object X not found锨络,是為什么赌躺,應該怎么解決?
報錯原因是找不到X變量羡儿,可能是沒有對X變量賦值礼患,或者是對X賦值的代碼在腳本編輯器中沒有運行,所以出現(xiàn)這類報錯時掠归,查看自己的環(huán)境變量是否缺少該目標