R語(yǔ)言入門
基礎(chǔ):顯示工作路徑getwd()
查看幫助:
?read.table
向量
向量vs標(biāo)量
元素指的是數(shù)字或者字符串(用chr表示)等瞒窒,根據(jù)它可以區(qū)分兩個(gè)詞:
標(biāo)量:一個(gè)元素組成的變量
向量:多個(gè)元素組成的變量
從向量中提取元素
根據(jù)元素位置
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è)元素
根據(jù)值
x[x==10]#等于10的元素
x[x<0]
x[x %in% c(1,2,5)]#存在于向量c(1,2,5)中的元素
數(shù)據(jù)框
注:將示例數(shù)據(jù)放在工作目錄下
X<-read.csv('doudou.txt')
讀取本地?cái)?shù)據(jù)
read.table(file="huahua.txt",sep="\t",header=T)
a<-read.table(file="huahua.txt",sep="\t",header=T)
設(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的意思是修改第一列為行名
數(shù)據(jù)框?qū)С?/h3>
write.table(X,file = "xiaobai.txt",sep = ",",quote=F)#分隔符改為逗號(hào),字符串不加雙引號(hào)(默認(rèn)格式帶由雙引號(hào))
變量保存與重新加載
#這次沒(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í)的加載命令
提取元素
- 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)秀寫法,而且這個(gè)命令還優(yōu)秀到不用寫括號(hào)的地步剑辫,并且支持Tab自動(dòng)補(bǔ)全哦干旧,不過(guò)只能提取一列)
直接使用數(shù)據(jù)框中的變量
write.table(X,file = "xiaobai.txt",sep = ",",quote=F)#分隔符改為逗號(hào),字符串不加雙引號(hào)(默認(rèn)格式帶由雙引號(hào))
#這次沒(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í)的加載命令
- 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)秀寫法,而且這個(gè)命令還優(yōu)秀到不用寫括號(hào)的地步剑辫,并且支持Tab自動(dòng)補(bǔ)全哦干旧,不過(guò)只能提取一列)
提取兩列作散點(diǎn)圖
options(stringsAsFactors = T)
a <-data.frame(case=paste0("S",1:9),values=runif(9))
plot(a$case,a$values)
attach
將數(shù)據(jù)框名添加到搜索環(huán)境中:attach(a),作圖時(shí)就只需輸入列名(連$都不用了)。
attach(a)
plot(case,values)
做完后將a刪除出搜索環(huán)境 detach(a)
局限性:兩個(gè)以上數(shù)據(jù)框的列名有沖突時(shí)妹蔽,同時(shí)attach會(huì)報(bào)錯(cuò)莱革。
with
with(a,{
plot(case,values)
x<<-summary(values) #求和并賦值給x,<<的意思是作為全局變量,也就是出了大括號(hào)仍有效讹开。
})
x #運(yùn)行完后打印x
腳本的使用與保存:
將上面的代碼復(fù)制(手打更好)到一個(gè)新的R腳本中盅视。然后保存到工作目錄下,要用的時(shí)候直接找到他旦万,用Rstudio打開(kāi)就好闹击。
save(X,file="test.RData")這句代碼如果報(bào)錯(cuò)object X not found,是為什么成艘,應(yīng)該怎么解決赏半?
沒(méi)有定義X,定義X后重新鍵入命令淆两。