學(xué)習(xí)前需掌握
(1)R的賦值符號(hào)不是等號(hào)烫幕,而是<-
(2)在Console 控制臺(tái)輸入命令,相當(dāng)于Linux的命令行
(3)R的代碼都是帶括號(hào)的遵绰,括號(hào)必須是英文的烦感。
(4)顯示工作路徑 getwd()
(5)向量是由元素組成的逝变,元素可以是數(shù)字或者字符串基茵。
(6)表格在R語言中改名叫數(shù)據(jù)框
(7)別只復(fù)制代碼,要理解其中的命令壳影、函數(shù)的意思耿导。函數(shù)或者命令不會(huì)用時(shí),除了百度/谷歌搜索以外态贤,用這個(gè)命令查看幫助:?read.table
舱呻,調(diào)出對(duì)應(yīng)的幫助文檔,翻到example部分研究一下悠汽。
(8)數(shù)據(jù)類型(重點(diǎn)只有兩個(gè)箱吕,剩下的不看)
向量(vector)??重要
矩陣(Matrix)
數(shù)組(Array)
數(shù)據(jù)框(Data frame)??重要
List
正文
一、向量
1.標(biāo)量和向量的區(qū)分
首先明確“元素”的意思柿冲,元素指的是數(shù)字或者字符串(用chr表示)等茬高,根據(jù)它可以區(qū)分兩個(gè)詞:
標(biāo)量:一個(gè)元素組成的變量(1或者"e")
向量:多個(gè)元素組成的變量(c(1,2,3)或者c("e","zai","zi"))
(補(bǔ)充:一個(gè)向量是一排有序排列的元素,以后會(huì)用到把一個(gè)向量作為數(shù)據(jù)框中的一列的情況假抄。字符串使用時(shí)需要加引號(hào))-
理解元素怎栽、向量和標(biāo)量
使用時(shí)丽猬,一般都會(huì)直接給變量定義,也就是“賦值”熏瞄,字面意思是賦予這個(gè)變量一個(gè)數(shù)值(其實(shí)也不一定是數(shù)值脚祟,還可以是字符串/數(shù)據(jù)框等等)。
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取一個(gè)數(shù)(注意是逗號(hào)不是分號(hào))
x<- rep(1:3,times=2)
#1-3 重復(fù)2次
tips:如果這幾行代碼都打過了行您,那么x就被賦值了4次,結(jié)果就是剪廉,第一次賦值被第二次的覆蓋了娃循,第二次的賦值又被第三次的覆蓋了,以此類推斗蒋,以最后一次為準(zhǔn)哦捌斧。 -
給變量賦值后
2.從向量中提取元素
二、數(shù)據(jù)框
- 練習(xí):
X<-read.csv('doudou.txt')
(1)讀取本地?cái)?shù)據(jù)
read.table(file = "huahua.txt",sep = "\t",header=T)
#sep = "\t":以Tab作為分隔符吹泡,header=T:表示文件數(shù)據(jù)帶表頭
<-read.table(file = "huahua.txt",sep = "\t",header=T
注意:
(2)設(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è)命令來修改,將第一列列名更改為bioplanet
X<-read.csv(file = "huahua.txt",sep = " ",header =T,row.names=1)
#最后row.names的意思是修改第一列為行名
(3)數(shù)據(jù)框的導(dǎo)出
write.table(X,file = "yu.txt",sep = ",",quote=F)
#分隔符改為逗號(hào)舆吮,字符串不加雙引號(hào)(默認(rèn)格式帶由雙引號(hào))quote=F表示輸出的char或factor不用""引住;quote=T則使用""
(4)變量的保存與重新加載
- (這次沒有處理完的數(shù)據(jù)下次想接著用怎么辦?--學(xué)會(huì)保存和重新加載揭朝。保存的格式是RData。)
-
save.image(file="bioinfoplanet.RData")
#保存當(dāng)前所有變量 -
save(X,file="test.RData")
#保存其中一個(gè)變量 -
load("test.RData")
#再次使用RData時(shí)的加載命令
(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)秀寫法色冀,而且這個(gè)命令還優(yōu)秀到不用寫括號(hào)的地步潭袱,并且支持Tab自動(dòng)補(bǔ)全哦,不過只能提取一列)
(6)【選修部分】直接使用數(shù)據(jù)框中的變量
提取某兩列作散點(diǎn)圖: -
options(stringsAsFactors = T)
#環(huán)境設(shè)置函數(shù)锋恬,設(shè)置數(shù)據(jù)框的讀取方式屯换,將String讀取為Factor -
a <-data.frame(case=paste0("S",1:9),values=runif(9))
paste0("S",1:9)將S與1-9的數(shù)字連接起來形成字符,runif(9):產(chǎn)生9個(gè)隨機(jī)數(shù) plot(a$case,a$values)
省力不用重復(fù)輸入a
方法1:attach
將數(shù)據(jù)框名添加到搜索環(huán)境中:attach(a),作圖時(shí)就只需輸入列名(連$都不用了)与学。
attach(a)
-
plot(case,values)
方法2:with
with(a,{ plot(case,values)
x<<-summary(values)
#求和并賦值給x,<<的意思是作為全局變量彤悔,也就是出了大括號(hào)仍有效。})
x
#運(yùn)行完后打印x
作業(yè):save(X,file="test.RData")這句代碼如果報(bào)錯(cuò)object X not found索守,是為什么晕窑,應(yīng)該怎么解決?
回答:沒有定義X變量