今天開始R數據結構了
向量
矩陣
數組
數據框
因子
列表
向量是由多個元素組成的變量希坚,元素可以是數字或者字符串 均函,并且是有序排列
標量是由單個元素組成的變量
1.賦值
x<-c(1,2,3) #常用的向量定義寫法勘高,
意為將x定義為由元素1婉商,2,3組成的向量项钮。
x<-(1:10) #從1-10之間所有的整數
x<-seq(1,10,by = 0.5) #1-10之間每隔0.5取一個數
(注意這里是逗號不是分號)
x<-rep(1:3,times=2) #1-3 重復2次
賦值
多次賦值只會保留最后一個
- 從向量中提取元素
x[4] #第4個元素
x[-4] #排除法班眯,除了第4個元素之外剩余的元素
x[2:4]#第2到4個元素
x[-(2:4)]#除了……
x[c(1,5)] #第1個和第5個元素
根據元素位置提取元素
x[x==10]#等于10的元素
x[x<0]
x[x %in% c(1,2,5)]#存在于向量c(1,2寄纵,5)中的元素
根據值的大小
數據框
1.讀取本地數據
read.table(file = "lee.txt",sep = "\t",header =T)
#讀取文件,分隔符為Tab脖苏,有表頭
a<-read.table(file = "lee.txt"
,sep = "\t",header =T)
#把這個數據框賦給一個變量a
讀取成功
2 設置行名和列名
X<-read.csv('lee.txt')
#在示例數據里有l(wèi)ee.txt 注意這里的變量X是一個數據框
colnames(X) #查看列名
rownames(X) #查看行名,默認值的行名就是行號程拭,1.2.3.4...
colnames(X)[1]<-"bioplanet" #有的公司返回數據,
左上角第一格為空棍潘,R會自動補為x,用這個命令來修改
X<-read.csv(file = "lee.txt",sep = "\t",header
=T,row.names=1)
#最后row.names的意思是修改第一列為行名
有點蒙圈了
3.數據框的導出
write.table(X,file = "yu.txt",sep = ",",quote=F)
#分隔符改為逗號恃鞋,字符串不加雙引號(默認格式帶由雙引號)
4.變量的保存與重新加載
save.image(file="bioinfoplanet.RData")
保存當前所有變量
save(frame1,file="frame1.RData")
保存其中一個變量
load("frame1.RData")
再次使用RData時的加載命令
5.提取元素
- X[x,y]
#第x行第y列
- X[x,]
#第x行
- X[,y]
#第y列(橫著寫,這是不夠懶也不夠優(yōu)秀卻能存在的寫法)
- X[y]
#第y列(豎著寫亦歉,這是懶惰又優(yōu)秀的寫法)
- X[a:b]
#第a列到第b列
- X[c(a,b)]
#第a列和第b列
- X$列名
#也可以提取列(優(yōu)秀寫法恤浪,而且這個命令還優(yōu)秀到不用寫括號的地步,并且支持Tab自動補全哦肴楷,不過只能提取一列)
6.直接使用數據框中的變量
c <-data.frame(case=paste("S",c(1:50)),values=runif(50)
> plot(c$case,c$values)
有點難懂
下面才是??重點
方法1:attach
將數據框名添加到搜索環(huán)境中:attach(c),作圖時就只需輸入列名(連$都不用了)水由。
attach(c)
plot(case,values)
做完后將a刪除出搜索環(huán)境 detach(c)
局限性:兩個以上數據框的列名有沖突時,同時attach會報錯赛蔫。
方法2:with
with(c,{+ plot(case,values)
x<<-summary(values)
#求和并賦值給x,<<的意思是作為全局變量砂客,y也就是出了with循環(huán)仍有效泥张。
})
x
#運行完后打印x
這幾天學習到R這里真的是蒙圈的狀態(tài),鞠值,有點難理解阿媚创。。彤恶。得下功夫琢磨一下了
xmind