R的基本对象——向量

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给出要保留的变量(或者用负号表示去掉)

猜你喜欢

转载自blog.csdn.net/weixin_41942402/article/details/80285792