#向量
(A<-c(1,2,3))
(B<-"abcD")
(C<-TRUE)
is.vector(B)#判断向量
is.logical(C)#判断逻辑
(a<-rep(1:3,each=2))#112233
(b<-rep(1:3,times=2))#123123
(c<-seq(from=1,to=10,by=2))#13579
(d<-seq(from=1,to=10,length=3))
e<-scan()#键盘输入
(f<-vector(length=10))#初始值默认FALSE,访问向量元素具体赋值
f[1]<-1
f[2:3]<-c(2,3)
temp<-seq(from=4,to=9,by=1)
f[c(4:9,10)]<-c(temp,10)#指定位置赋值1~10
#利用位置向量访问
b<-(2:4)
f[b]
b<-c(TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE)
f[b]
#访问指定元素之外
f[-1]
f[-(2:4)]
f[-c(1:5,10)]
b<-(2:4)
f[-b]
ls()
#矩阵 is.matrix(对象名)
#向量合并成矩阵
age<-c(22,23,24,25)
name<-c("aa","bb","cc","dd")
cm<-cbind(name,age)#列合并
dim(cm)
str(cm)
rm<-rbind(name,age)#行合并
dim(rm)
str(rm)
#单个向量派生矩阵
a<-(1:30)
dim1<-c("r1","r2","r3","r4","r5")
dim2<-c("c1","c2","c3","c4","c5","c6")
claim<-matrix(a,nrow=5,ncol = 6,byrow = FALSE,dimnames = list(dim1,dim2))#byrow为TRUE表示按行排列
#访问指定位置元素
claim[2,3]#位置常量
claim[1:3,1:3]
a<-c(1:3)#1-3行,1、3列
claim[a,c(1,3)]
head(claim,2)#前两行
tail(claim,2)#后两行
claim[2,]#第二行
claim[c(1,3),]#一三行
a<-c(TRUE,TRUE,FALSE,FALSE,TRUE)
claim[a,]#逻辑显示125行
claim[,1:3]#1-3列
#给矩阵赋值
a<-matrix(nrow = 5,ncol = 2)
a[,1]=seq(from=1,to=10,by=2)
a[,2]=seq(from=10,to=1,by=-2)
fix(claim)#显示数据编辑器
#数据框 is.data.frame(数据对象名)
claimfrm<-data.frame(fage=age,fname=name)#创建数据框,多个向量的集合
names(claimfrm)#显示数据框域名
str(claimfrm)#显示数据框结构
is.data.frame(claimfrm)
a<-data.frame(x1=numeric(0),x2=character(0),x3=logical(0))#空数据框,可以fix手动输入
str(a)
#访问数据框
claimfrm$fage
claimfrm[["fage"]]
claimfrm[[1]]#域编号访问
attach(claimfrm)
fname
detach(claimfrm)#屏障中无需指定数据框名
#with函数
with(claimfrm,{
age<-fage+1#age为临时变=变量,仅在with{}中有效
print(age)
})
#within函数
claimfrm<-within(claimfrm,{
salary<-fage*10#在数据框增加域salary
})
#数组is.array(对象名)
a<-c(1:60)
dim1<-c("r1","r2","r3","r4")
dim2<-c("c1","c2","c3","c4","c5")
dim3<-c("t1","t2","t3")
a<-array(a,c(4,5,3),dimnames=list(dim1,dim2,dim3))#创建维度4,5,3数组
#访问数组
a[1:3,c(1,3),1]#第一张表的1-3行和1、3列,行号列号表号
#列表is.list(对象名),是对象的集合
a<-c(1,2,3)
b<-matrix(nrow = 5,ncol = 2)
b[,1]=seq(from=1,to=10,by=2)
b[,2]=seq(from=10,to=1,by=-2)
c<-array(1:7,c(4,5,3))
d<-list(L1=a,L2=b,L3=c)
names(d)
#访问列表
d$L1
d[["L2"]]
d[[3]]
#数据对象转换
a<-12.3
typeof(a)
is.numeric(a)
is.integer(a)
is.double(a)
is.character(a)
is.logical(a)
(a<-as.integer(a))
(a<-as.character(a))
a<-c(1:10)
as.matrix(a)#向量转为矩阵
b<-matrix(a,nrow = 5,ncol = 2,byrow = FALSE)#派生矩阵b
as.vector(a)#矩阵转为向量(一列一列读)
#向量转为因子is.factor(向量名)
a<-c("poor","improves","excellent","poor")
b<-as.factor(a)#按字母排序,分三个level
b<-factor(a,order=TRUE,levels = c("poor","improves","excellent"))#true表示对应顺序分类型变量
b<-factor(a,order=FALSE,levels = c("poor","improves","excellent"))#false表示名义分类型变量
b<-factor(a,order=FALSE,levels = c("poor","improves","excellent"),labels=c("C","B","A"))#重新设定类别值
gl(5,4)#五个水平因子各出现4次
as.vector(b)#因子转为向量
R语言基础知识
最新推荐文章于 2023-06-14 08:00:00 发布