今天學(xué)習(xí)向量和數(shù)據(jù)框,之前有看過,但學(xué)習(xí)的不夠系統(tǒng),今天認(rèn)真學(xué)習(xí)
- 元素、向量、標(biāo)量
元素:可以是數(shù)字或者字符串
標(biāo)量:一個(gè)元素組成的變量
向量:多個(gè)元素組成的變量
再把這些向量進(jìn)行賦值,你想賦值給誰都行
進(jìn)入練習(xí)
- 賦值
x<- rep(1:3,times=2) #1-3 重復(fù)2次
x
這便是返回的結(jié)果,包含有1 2 3 1 2 3這些元素的向量現(xiàn)在賦值給了x

image.png
- 從向量中提取元素
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è)元素
如果是數(shù)據(jù)框的提取那就要分行和列,前面是行,后面是列

image.png
- 讀取文件
讀取文件以及賦值是R最常用的了
學(xué)習(xí)內(nèi)容是在文件夾中先建立txt,然后讀入,這里可以在R中創(chuàng)建數(shù)據(jù)框
X1 <- c("A","B","C","D","E")
X2 <- c("1","","","3","")
X <- data.frame(X1,X2)

image.png
- 查看數(shù)據(jù)
colnames(X) #查看列名
rownames(X) #查看行名
colnames(X)[1]<-"bioplanet"#第一列命名

image.png
.
- 變量的保存與重新加載
save.image(file="bioinfoplanet.RData")#保存當(dāng)前所有變量
save(X,file="test.RData")#保存其中一個(gè)變量
load("test.RData")#再次使用RData時(shí)的加載命令
保存完會(huì)發(fā)現(xiàn)多了兩個(gè)文件

image.png
- 數(shù)據(jù)框提取
X[1,1]#第1行第1列
X[1,]#第1行
X[,1]#第1列
X[1] #也是第1列
X[1:2]#第1列到第2列
X[c(1,2)]#第1列和第2列,當(dāng)然如果這里數(shù)據(jù)多,我就可以只選擇想要留下來的列數(shù),例如5和10列
X$bioplanet#新知識(shí)點(diǎn)
- 直接使用數(shù)據(jù)框中的變量
a <-data.frame(case=paste("S",1:50),values=runif(50))#runif()函數(shù)用于生成從0到1區(qū)間范圍內(nèi)的服從正態(tài)分布的隨機(jī)數(shù)
plot(a$case,a$values)
我們想要畫圖,就發(fā)現(xiàn)這種方法數(shù)據(jù)框名a在代碼中重復(fù)出現(xiàn)(當(dāng)然,對(duì)于菜鳥而言還沒有擁有可以懶惰的能力)懶惰才是第一生產(chǎn)力,于是乎花花就提供了懶惰的方法
1.將數(shù)據(jù)框名添加到搜索環(huán)境中:attach(a)
attach(a)
plot(case,values)
做完后將a刪除出搜索環(huán)境 detach(a),要注意設(shè)置的變量就要在attach(a) 和detach(a)之間才能搜索到
2.還可以使用with函數(shù)添加數(shù)據(jù)框到環(huán)境變量,可以在with函數(shù)內(nèi)進(jìn)行操作,但是這樣就會(huì)使得里面設(shè)置的變量在外部無法訪問,所以就引入<<,意思是作為全局變量,也就是出了大括號(hào)仍有效。
with(a,{
plot(case,values)
x<<-summary(values) #求和并賦值給x,<<的意思是作為全局變量,也就是出了大括號(hào)仍有效。
})
x #運(yùn)行完后打印x
課后思考題
- save(X,file="test.RData")這句代碼如果報(bào)錯(cuò)X not found,是為什么,應(yīng)該怎么解決
說明在前面中并沒有賦值給X,有可能是沒有賦值,或者是賦值到其他上面去了,R是區(qū)分大小寫的,查看是否賦值給x了