數(shù)據(jù)結(jié)構(gòu)
一诸迟、幾個小技巧
- R的賦值符號:<-
- Console 控制臺輸入命令:相當(dāng)于linux命令行
- R的代碼都是帶括號的
- 括號必須是英文
- 顯示工作路徑 getwd()
- 向量是由元素組成的(元素可以是數(shù)字或者字符串)
- 表格在R語言中改名叫數(shù)據(jù)框
-
?函數(shù)名
調(diào)出對應(yīng)的幫助文檔(如啸臀?read.table) - 數(shù)據(jù)類型(向量(vector)矩陣(Matrix)數(shù)組(Array)數(shù)據(jù)框(Data frame)List)
二纯蛾、向量
- 元素:數(shù)字或者字符串
- 標(biāo)量:一個元素組成的變量
-
向量:多個元素組成的變量 格粪,是一排有序排列的元素標(biāo)量翠拣、向量與元素
常見賦值方法
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取一個數(shù)(注意是逗號不是分號)
x<- rep(1:3,times=2) #1-3 重復(fù)2次
查看變量
圖cr生信星球
圖cr生信星球
從向量中提取元素的方法
1. 按位置
> x
[1] 1 2 3 1 2 3
> x[-4]#排除法再登,除了第4個元素之外剩余的元素
[1] 1 2 3 2 3
> x[2:4]#第2到4個元素
[1] 2 3 1
> x[-(2:4)]#除了第2-4個元素
[1] 1 2 3
> x[c(1,5)] #第1個和第5個元素
[1] 1 2
2. 按數(shù)值
> x[x==3]#等于3的元素
[1] 3 3
> x[x>1]
[1] 2 3 2 3
> x[x %in% c(1,2,5)]#存在于向量c(1,2晾剖,5)中的元素
[1] 1 2 1 2
三.數(shù)據(jù)框
示例數(shù)據(jù)1
示例數(shù)據(jù)2
1. 輸入
y<-read.csv('doudou.txt')
后結(jié)果
2. 輸入
z<-read.table('huahua.txt',sep="\t",header=T)
后結(jié)果
- 此處sep表示分隔符锉矢,\t為空格的意思,即空格為分隔符
- header為第一行是否用作列名稱齿尽。true則excel第一行用于列名稱,具體數(shù)據(jù)從第二行開始 false則第一行即為具體數(shù)據(jù)沽损。此處首行X1、X2為列名稱循头。
3. 設(shè)置行名和列名
> X<-read.csv('doudou.txt')
> colnames(X) #查看列名
[1] "X1" "X2"
> rownames(X) #查看行名,默認(rèn)值的行名就是行號绵估,1.2.3.4...
[1] "1" "2" "3" "4" "5"
> colnames(X)[1]<-"bioplanet"#有的公司返回數(shù)據(jù)炎疆,左上角第一格為空,R會自動補(bǔ)為x,用這個命令來修改
> X<-read.csv(file = "huahua.txt",sep = " ",header =T,row.names = 1)#最后row.names的意思是修改第一列為行名
輸入最后一行代碼后X顯示
4. 數(shù)據(jù)框的導(dǎo)出
write.table(X,file = "yu.txt",sep = ",",quote=F)#分隔符改為逗號国裳,字符串不加雙引號(默認(rèn)格式帶由雙引號)
5. 變量的保存與重新加載
save.image(file="bioinfoplanet.RData")#保存當(dāng)前所有變量(保存鏡像文件)
save(X,file="test.RData")#保存其中一個變量
load("test.RData")#再次使用RData時的加載命令
6. 提取元素
- 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自動補(bǔ)全哦缝左,不過只能提取一列)
示例數(shù)據(jù)框
> z[1,2]
[1] 1
> z[1,1]
[1] "A"
> z[3,1]
[1] "C"
> z[1,]
X1 X2
1 A 1
> z[2,]
X1 X2
2 B NA
> z[,2]
[1] 1 NA NA 3 NA
> z[,1]
[1] "A" "B" "C" "D" "E"
> z[1]
X1
1 A
2 B
3 C
4 D
5 E
> z[1:2]
X1 X2
1 A 1
2 B NA
3 C NA
4 D 3
5 E NA
> z[c(1,2)]
X1 X2
1 A 1
2 B NA
3 C NA
4 D 3
5 E NA
> z$X1
[1] "A" "B" "C" "D" "E"
其他知識點(diǎn)
- 提取某兩列為散點(diǎn)圖
options(stringsAsFactors = T)
a <-data.frame(case=paste0("S",1:9),values=runif(9))
plot(a$case,a$values)
若為了避免plot函數(shù)中變量名出現(xiàn)兩次唯笙,可采用如下方法
attach(a)
plot(case,values)
或
with(a,{
plot(case,values)
x<<-summary(values) #求和并賦值給x,<<的意思是作為全局變量,也就是出了大括號仍有效盒使。
})
x #運(yùn)行完后打印x
- 腳本的復(fù)制與保存(省略)
課后問題:save(X,file="test.RData")這句代碼如果報錯object X not found崩掘,是為什么,應(yīng)該怎么解決少办?
答:證明X對象不存在苞慢,可能是變量名寫錯,之前并未對X變量進(jìn)行賦值