今天學習向量和數(shù)據(jù)框贪薪,之前有看過璃饱,但學習的不夠系統(tǒng)骏全,今天認真學習
- 元素苍柏、向量、標量
元素:可以是數(shù)字或者字符串
標量:一個元素組成的變量
向量:多個元素組成的變量
再把這些向量進行賦值姜贡,你想賦值給誰都行
進入練習
- 賦值
x<- rep(1:3,times=2) #1-3 重復2次
x
這便是返回的結果试吁,包含有1 2 3 1 2 3這些元素的向量現(xiàn)在賦值給了x
- 從向量中提取元素
x[4] #x第4個元素
x[-4]#排除法,除了第4個元素之外剩余的元素
x[2:4]#第2到4個元素
x[-(2:4)]#除了第2-4個元素
x[c(1,5)] #第1個和第5個元素
如果是數(shù)據(jù)框的提取那就要分行和列楼咳,前面是行熄捍,后面是列
- 讀取文件
讀取文件以及賦值是R最常用的了
學習內(nèi)容是在文件夾中先建立txt,然后讀入,這里可以在R中創(chuàng)建數(shù)據(jù)框
X1 <- c("A","B","C","D","E")
X2 <- c("1","","","3","")
X <- data.frame(X1,X2)
- 查看數(shù)據(jù)
colnames(X) #查看列名
rownames(X) #查看行名
colnames(X)[1]<-"bioplanet"#第一列命名
.
- 變量的保存與重新加載
save.image(file="bioinfoplanet.RData")#保存當前所有變量
save(X,file="test.RData")#保存其中一個變量
load("test.RData")#再次使用RData時的加載命令
保存完會發(fā)現(xiàn)多了兩個文件
- 數(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列,當然如果這里數(shù)據(jù)多母怜,我就可以只選擇想要留下來的列數(shù)余耽,例如5和10列
X$bioplanet#新知識點
- 直接使用數(shù)據(jù)框中的變量
a <-data.frame(case=paste("S",1:50),values=runif(50))#runif()函數(shù)用于生成從0到1區(qū)間范圍內(nèi)的服從正態(tài)分布的隨機數(shù)
plot(a$case,a$values)
我們想要畫圖,就發(fā)現(xiàn)這種方法數(shù)據(jù)框名a在代碼中重復出現(xiàn)(當然苹熏,對于菜鳥而言還沒有擁有可以懶惰的能力)懶惰才是第一生產(chǎn)力碟贾,于是乎花花就提供了懶惰的方法
1.將數(shù)據(jù)框名添加到搜索環(huán)境中:attach(a)
attach(a)
plot(case,values)
做完后將a刪除出搜索環(huán)境 detach(a)币喧,要注意設置的變量就要在attach(a) 和detach(a)之間才能搜索到
2.還可以使用with函數(shù)添加數(shù)據(jù)框到環(huán)境變量,可以在with函數(shù)內(nèi)進行操作缕陕,但是這樣就會使得里面設置的變量在外部無法訪問粱锐,所以就引入<<,意思是作為全局變量扛邑,也就是出了大括號仍有效。
with(a,{
plot(case,values)
x<<-summary(values) #求和并賦值給x,<<的意思是作為全局變量铐然,也就是出了大括號仍有效蔬崩。
})
x #運行完后打印x
課后思考題
- save(X,file="test.RData")這句代碼如果報錯X not found,是為什么搀暑,應該怎么解決
說明在前面中并沒有賦值給X沥阳,有可能是沒有賦值,或者是賦值到其他上面去了自点,R是區(qū)分大小寫的桐罕,查看是否賦值給x了