数据类型
1、赋值操作:x<-10 x是变量名,<-是赋值符号、10是值(R语言和C、JAVA、Python不同的地方)“=”也可以,但是效率没有<-高
2、数据成员:字符型、数值型、布尔型、复数型、缺省值
数据类型的判别 is. 和转换 as. ;
3、查看数据框的类型
优先用mode、class、再是typeof
精确度大小:mode<class<typeof
mode函数只查看数据的大类,class函数查看数据的类,typeof函数更加细化,查看数据的系细类。
4、向量
a<-c(1,2,33) # 向量的C函数
is.character(a)#判断
is.numeric(a)
b<-as.character(a)#转换
b<-1+3i#复数
is.complex(b)
#创建一个数据框,有3个不同的类型的对象成员
> data<-data.frame(c1=c(1,2,3),c2=1:3,c3=T)
> sapply(data,mode)#传递两个参数
c1 c2 c3
"numeric" "numeric" "logical"
> sapply(data,class)
c1 c2 c3
"numeric" "integer" "logical"
> sapply(data,typeof)
c1 c2 c3
"double" "integer" "logical"
# 可以看出来精确度mode<class<typeof
x<-c(T,T,F)
y<-c(F,T,F)
x&&y#只会比较第一个首字母 FALSE
x&y#会把每一个都输出 FALSE TRUE FALSE
x<-c(1,0,3,4)
is.na(x) #FALSE FALSE FALSE FALSE
is.null(x) # FALSE
R语言中,NA代表位置上的值为空,NULL代表连位置都没有,变量为空。
判断语句
判断向量中的元素是否没有值:is.na()
判断向量是否空值:is.null()
1、R拥有存储数据的对象类型,包括向量、矩阵、数组、数据框、列表
向量的创建:以一维数组的管理方法来,可以是数值型、字符型、布尔型、复数型
可以用=,也可以用C函数来,
注:向量的所有元素都必须是属于相同的类型,如果不是,R会强制转换!
x<-seq(1:7)#创建数值型向量1,2,3,4,5,6 用两种方式创建
x<-c(1,2,3,4,5,6)
y<-c("l","o","v","e")#创建字符型向量 l ,o ,v ,e
x<-c(TRUE,FALSE,FALSE,TRUE)#创建布尔型向量TRUE,FALSE,FALSE,TRUE
2、mode函数
3、R语言最强大之一在于向量化
向量的算数运算
seq函数
产生等距间隔的数列,基本形式是:
seq(from=1,to=1,by=((to-from)/length.out-1),along.with=null…)
左闭右开!
seq(1,11,by=2)#给出首项1和末项数据11以及步长2
seq(1,-11,length=7)#步长是(-11-1)/(7-1)=-2
x3<-seq(4,by=2,length=5)
x4<-seq(by=3,along.with = x3)
print(x4)
#得到 1 4 7 10 13
rep是重复函数,基本形式是rep(x,n) x 是要重复的序列,n是重复的次数
rep(1:4,3)#将序列1,2,3,4,重复3次 输出:1 2 3 4 1 2 3 4 1 2 3 4
rep(1:4,each=2) #将1,2,3,4序列中每个元素分别重复2次 输出:1 1 2 2 3 3 4 4
rep(3:2,each=2,len=3) #序列3,2中各个元素分别重复2次,规定生成序列的长度为3 输出:3 3 2
rep(1:4,c(2,1,2,1),len=3)#可以指定来控制重复次数 输出:1 2 3
#len和each配套使用,在没有each的情况下,就会首先识别len=3
#time 使用时要用each来配套使用
索引向量
(从1开始)
ve<-c(1,2,3,4,5,6)
ve[c(2,4,5)] #查看第2,4,5元素的值
ve<-c(1,2,3,42,509,688)
which(ve>3)#前三个值 的位置 4,5,6
ve[which(ve>3)] #返回的是值 42,509,688
#也可以用删除的方式来做
ve[-c(1,2,3)<