2020-04-21
今天的內容:
- 標量和變量
> x<-c(1,2,3)
> x
[1] 1 2 3
> x<-1:10
> x
[1] 1 2 3 4 5 6 7 8 9 10
> x<-seq(1,10,by = 0.5)
> x
[1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10.0
> x<-rep(1:3,times=2)
> x
[1] 1 2 3 1 2 3
- 從向量中提取元素
2.1 根據元素位置
> x[4]
[1] 1
> x[-4]
[1] 1 2 3 2 3
> x[2:4]
[1] 2 3 1
> x[-2:4] #R的代碼都是帶括號的,括號必須是英文的。
Error in x[-2:4] : only 0's may be mixed with negative subscripts
> x[-(2:4)]
[1] 1 2 3
> x[-(2)&-(4)] #不理解啥意思,難道不是:排除第2及第4后的元素嗎?
[1] 1 2 3 1 2 3
> x[c(2,4)]
[1] 2 1
> x[c(2:4)]
[1] 2 3 1
>
?2.2 根據值
> x==10 #x=10的元素
[1] FALSE FALSE FALSE FALSE FALSE FALSE
> x==1
[1] TRUE FALSE FALSE TRUE FALSE FALSE
> x<2
[1] TRUE FALSE FALSE TRUE FALSE FALSE
-
數(shù)據框
3.1 讀取本地數(shù)據
上傳數(shù)據到newbee.Rproj所在目錄:
> read.table(file ="huahua.txt",sep = "\t",header =T)
X1 X2
1 A 1
2 B NA
3 C NA
4 D 3
5 E NA
?3.2 設置行名、列名
> X<-read.csv("doudou.txt")
> col(X)
[,1] [,2]
[1,] 1 2
[2,] 1 2
[3,] 1 2
[4,] 1 2
[5,] 1 2
> colnames(X)
[1] "X1" "X2"
> rownames(X)
[1] "1" "2" "3" "4" "5"
> colnames(X)[1]<-"bioplanet" #命名第一列
> X
bioplanet X2
1 A 1
2 B NA
3 C NA
4 D 3
5 E NA
X<-read.csv(file = "huahua.txt",sep = " ",header =T,row.names=1) #row.names的意思是修改第一列為行名

X
?3.3 數(shù)據框的導出
> write.table(X,file="yu.txt",sep = ",",quote = F) #分隔符改為逗號,字符串不加雙引號(默認格式帶由雙引號)

yu.txt
?3.4 變量的保存與重新加載
> save.image(file="bioinfoplanet.RData")#保存當前所有變量
> save(X,file="test.RData")#保存其中一個變量
> load("test.RData")#再次使用RData時的加載命令
?3.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)秀寫法,而且這個命令還優(yōu)秀到不用寫括號的地步,并且支持Tab自動補全哦,不過只能提取一列)
> X
X2
A 1
B NA
C NA
D 3
E NA
> X[2,2]
NULL
> X[2,1]
[1] NA
> X[1,1]
[1] 1
> X[4,]
[1] 3
> X[,1]
[1] 1 NA NA 3 NA
> X[,0]
data frame with 0 columns and 5 rows
> X[1]
X2
A 1
B NA
C NA
D 3
E NA
> X$X2 #列名
[1] 1 NA NA 3 NA
?3.6 直接使用數(shù)據框中的變量
a <-data.frame(case=paste("S",1:50),values=runif(50))
plot(a)

a
plot(a$case,a$values) #發(fā)現(xiàn)x y軸名改變了

a`
- 1:
attach
將數(shù)據框名添加到搜索環(huán)境中:attach(a),作圖時就只需輸入列名(連$都不用了)。
attach(a)
plot(case,values)
做完后將a刪除出搜索環(huán)境 detach(a)
局限性:兩個以上數(shù)據框的列名有沖突時,同時attach會報錯。
- 2:
with
with(a,{
plot(case,values)
x<<-summary(values) #求和并賦值給x,<<的意思是作為全局變量,也就是出了大括號仍有效。
})
x #運行完后打印x
?3.7 思考題
save(X,file="test.RData")這句代碼如果報錯X not found,是為什么,應該怎么解決?
可能的原因:X不存在?此時應該檢查X的變量名稱是否正確?或者工作的目錄變化了?其實我不知道原因……
