前言
今天继续R学习。
基本概念
标量
单个的数值、字符值或者布尔值
向量
在《R语言的数据对象》一文中提到,R语言的数据对象从结构角度划分,可以分为向量、数组、矩阵、因子、列表和数据框6种。
在R语言中,向量(Vector)是相同基本类型元素组成的序列,相当于一维数组。
向量的元素可以是数值型、字符型、逻辑值型和复数型,对应分别称为数值型向量、字符串型向量、逻辑型向量和复数型向量。
向量中可以包含一个元素,也可以包含多个元素。
> x1<-1:10 #数字型向量
> x2<-TRUE #逻辑型向量
> x3 <- "I Love China" #字符型向量
> x1
[1] 1 2 3 4 5 6 7 8 9 10
> x2
[1] TRUE
> x3
[1] "I Love China"
操作
从向量中提取元素
根据元素位置
x<- rep(-2:10,times=2) #-2-10 重复2次
> x
[1] -2 -1 0 1 2 3 4 5 6 7 8 9 10 -2 -1 0 1 2 3 4 5 6 7 8 9 10
> x[4] #x第4个元素
[1] 1
> x[-4]#排除法,除了第4个元素之外剩余的元素
[1] -2 -1 0 2 3 4 5 6 7 8 9 10 -2 -1 0 1 2 3 4 5 6 7 8 9 10
> x[2:4]#第2到4个元素
[1] -1 0 1
> x[-(2:4)]#除了第2-4个元素
[1] -2 2 3 4 5 6 7 8 9 10 -2 -1 0 1 2 3 4 5 6 7 8 9 10
> x[c(1,5)] #第1个和第5个元素
[1] -2 2
根据值
> x[x==10]#等于10的元素
[1] 10 10
> x[x<0]
[1] -2 -1 -2 -1
> x[x %in% c(1,2,5)]#存在于向量c(1,2,5)中的元素
[1] 1 2 5 1 2 5
数据框
读取
a<-read.table(file = "huahua.txt",sep = "\t",header = T)
"huahua.txt".png
设置行名和列名
X<-read.csv('doudou.txt')
> colnames(X) #查看列名
[1] "X1" "X2"
> rownames(X) #查看行名
[1] "1" "2" "3" "4" "5"
> colnames(X)[1]<-"bioplanet"#修改第一列名为生信星球
修改后.png
也可直接在读取数据的时候定义行名
X2<-read.csv(file = "huahua.txt",sep = " ",header =T,row.names=1)#将第一行读为行名
第一行读为行名.png
导出
write.table(X2,file = "yu.txt",sep = ",",quote=F)#分隔符改为逗号,字符串不加双引号(默认格式带由双引号)
保存与加载数据
save.image(file="xzj.RData") #保存当前所有变量
save(X2,file = "xzj1.RData") #仅保存X2变量
load("xzj.RData") #加载数据
save(X,file="test.RData")这句代码如果报错object X not found,可能的原因是大小写没有正确?
提取元素
用内置数据iris演示
y<-iris
class(y)
y[2,3]#第2行第3列
y[3,]#第3行
y[,4]#第y列
y[4] #也是第y列,但数据类型不同
y[1:3]#第a列到第b列
y[c(1,3)]#第a列和第b列
y$Species #也可以提取列Species
思维导图
R基础-2.png