R的基本对象
只有数据框允许同一个对象中有数值型,逻辑型,字符型,复数型等多种类型。
数值型向量
1)seq()或":" #向量为较为简单的序列
> 1:10 [1] 1 2 3 4 5 6 7 8 9 10 > 1:10-1 [1] 0 1 2 3 4 5 6 7 8 9 > 1:(10-1) [1] 1 2 3 4 5 6 7 8 9 > seq(1,5,by=0.5) #等差序列 [1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 > seq(1,10,length=11) [1] 1.0 1.9 2.8 3.7 4.6 5.5 6.4 7.3 8.2 9.1 10.0
> sequence(3:5) #等差序列 [1] 1 2 3 1 2 3 4 1 2 3 4 5 > sequence(c(10,5)) [1] 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5
2)rep() #向量为较为复杂的规律
> rep(2:5,rep(2,4)) [1] 2 2 3 3 4 4 5 5 > rep(1:4,each=2,times=1:8) [1] 1 1 1 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 > rep(1:4,each=2,times=1:8,len=3) [1] 1 1 2 > rep(c(3,5),c(2,4)) [1] 3 3 5 5 5 5
rep函数有4个参数:x向量或者类向量的对象,each:x元素每个重复次数,times:each后的向量的处理,如果times是单个值,则each后的值整体重复times次数,如果是x,each后的向量相等长度的向量,则对each后的每个元素重复times同一位置的元素的次数,否则会报错;length.out指times处理后的向量最终输出的长度,如果长于生成的向量,则补齐。
3) c() #没有什么规律
> c("red","white","black","yellow","blue") [1] "red" "white" "black" "yellow" "blue" > c(5,14,7.5,2,6.66) [1] 5.00 14.00 7.50 2.00 6.66
4) scan() #通过键盘逐个输入
> scan() 1: 5 4 2 6 8 9 7: Read 6 items [1] 5 4 2 6 8 9
字符型向量
> paste("b",1:5) [1] "b 1" "b 2" "b 3" "b 4" "b 5" > paste("b",1:5,sep="") [1] "b1" "b2" "b3" "b4" "b5"paste(): Concatenate vectors after converting to character. 向量转换成字符并连接
paste()函数应用
> paste("b",1:5) [1] "b 1" "b 2" "b 3" "b 4" "b 5" > paste("b",1:5,sep="") [1] "b1" "b2" "b3" "b4" "b5" > paste("Hello","world") [1] "Hello world" > paste("A", 1:6, sep = "",collapse=",") [1] "A1,A2,A3,A4,A5,A6" > paste(letters[1:4],seq='_') [1] "a _" "b _" "c _" "d _"
逻辑型向量
TRUE/FALSE/NA
> (7==9)|(7>0) [1] TRUE
统计函数
· max(x) 返回向量 x 中最大的元素· m in(x) 返回向量 x 中最小的元素
· which.max (x) 返回向量 x 中最大元素的下标
· which.min (x) 返回向量 x 中最小元素的下标
· m ean(x) 计算向量 x 的均值
· median(x) 计算向量 x 的中位数
· mad(x) 计算中位绝对离差
· var (x) 计算向量 x 的方差 #variance
· sd (x) 计算向量 x 的标准差
· var(x,y)计算向量x与y的协方差
· cov(x,y)计算向量x与y的协方差 #covariance
· cor(x,y)计算向量x与y的相关系数
· range (x) 返回 长度为 2 的向量 :c(min(x),max(x))
· rev(x) 对 x 取逆序
· sort(x) 将向量 x 按升序排列,选项decreasing = TRUE表示降序,要按降序排列可以用命令 rev(sort(x))
· order(x) 返回 x 的秩(升序),选项decreasing = TRUE得到降序的秩 · rank(x) 返回 x 的秩
· pmin ( x,y ,...) 返回一个向量,它的第 i 个元素是 x[ i ], y[ i ], . . . 中最小值
· pmax ( x,y ,...) 同上,取最大值
· cumsum (x) 返回一个向量,它的第 i 个元素是从 x[1] 到 x[ i ] 的和
· cumprod (x) 同上,取乘积
· cummin (x) 同上,取最小值
· cummax (x) 同上,取最大值
· match(x, y) 返回一个和 x 的长度相同的向量,表示 x 中与 y 中元素相同的元素在 y 中的位置(没有则返回 NA )
· which(x == a) 返回一个包含 x 符合条件(当比较运算结果为真( TRUE )的下标的向量,在这个结果向量中数值 i 说明 x[ i ] == a (这个函数的参数必须是逻辑型变量)
·summary(x)计算常用的描述性统计量(最小,最大,平均值,中位数和四分位数)
其它常用函数
·round(x, n) 将x中的元素四舍五入到小数点后n位·sample(x, size) 从x中无放回抽取size个样本,选项replace = TRUE表示有放回的抽样
·log(x, base) 计算以base为底的x的对数值
·scale(x) 如果x是一个矩阵,则中心化和标准化数据; 若只进行中心化
·则使用选项scale=FALSE,只进行标准化则center=FALSE(缺省值是center=TRUE, scale=TRUE)
·choose(n, k) 计算从n个样本中选取k个的组合数
·na.omit(x) 忽略有缺失值(NA)的观察数据(如果x是矩阵或数据框则忽略相应的行)
·na.fail(x) 如果x包含至少一个NA则返回一个错误消息
·unique(x)如果x是一个向量或者数据框,则返回一个类似的对象但是去掉所有重复的元素(对于重复的元素只取一个)
·table(x) 返回一个表格,给出x中重复元素的个数列表(尤其对于整数型或者因子型变量)
·table(x, y) x与y的列联表
·subset(x, ...) 返回x中的一个满足特定条件...的子集,该条件通常是进行比较运算:x$V1 < 10;如果x是数据框,选项select给出要保留的变量(或者用负号表示去掉)