向量与因子操作

paste()函数操作:
这个函数就是将两个向量对应位置连接起来,返回一个String的向量
用例:
> x<-rep("q",times=5)
> x
[1] "q" "q" "q" "q" "q"
> paste(x,1:5)
[1] "q 1" "q 2" "q 3" "q 4" "q 5"
> paste(x,1:5,sep="")
[1] "q1" "q2" "q3" "q4" "q5"
> paste(x,1:5,sep="",collapse="ss")
[1] "q1ssq2ssq3ssq4ssq5"
rep(1:5,times=2)
参数有 times和each,用来重复产生向量。
sample函数,这个函数用来产生随机数列:
sample函数能够让你从数据集中(有放回或者无放回地)抽取大小为n的一个随机样本。
> sample(1:10,3,replace=FALSE)
[1] 7 9 10
> sample(1:10,3,replace=FALSE)
[1] 9 5 7
factor(vector):
将向量转化为因子
table(a,b):
a,b是两个因子,table函数就是将两个因子组成列联表。
margin.table(tablename,n)
n为1或2,对tablename的两个纬度的边界频数进行分别的统计。
prop.table(tablename,n):
计算每个纬度边际和总计的相对频数。
链接两个向量c1,c2:
c(c1,c2)
tail(c,n):
取向量的最后几个数。

例如province<-c("四川","湖南","江苏","四川","四川","四川","湖南","江苏","湖南","江苏"),为province创建因子:
> pf<-factor(province) 创建province的因子pf
> pf 打印出来
[1] 四川 湖南 江苏 四川 四川 四川 湖南 江苏 湖南 江苏
Levels: 湖南 江苏 四川
函数levels()可以用来观察因子中有多少不同的levels。
假如我们拥有这些省份考生的分数:
> score<-c(95,86,84,92,84,79,86,99,85,90)
函数tappley()可以用来计算各省的平均分数,函数tapply()的作用是对它第一个参数的组件中所包含的每个组应用一个参数三指定的函数。
> smeans<-tapply(score,pf,mean)
> smeans
湖南 江苏 四川
85.66667 91.00000 87.50000
再例如,下面命令会给出各组的length
> tapply(score,pf,length)
湖南 江苏 四川
3 3 4

tapply函数就像是分组函数一样,第一个参数的长度和第二个参数的长度相同,第一个参数按照第二个参数的分组进行计算。
sapply()函数的第一个参数是一个向量,第二个参数为一个函数。返回的结果是另一个向量,这个向量的长度和第一个参数的长度相同。
t.test(x, y) 函数用来比较两个样本x和y的均值和方差,就是T检验,检验均值和方差。
t.test(x)函数用来计算样本x的期望置信区间。
生成连续区间的函数 cut():
cut()函数可用两个参数,两个参数都应该是向量,第一个向量表示要统计其所属区间的数字,第二个向量表示各个区间的中间数。
运行一下指令:
> cut(c(36:47),35+10*(0:7))
[1] (35,45] (35,45] (35,45] (35,45] (35,45] (35,45] (35,45] (35,45] (35,45] (35,45] (45,55] (45,55]
Levels: (35,45] (45,55] (55,65] (65,75] (75,85] (85,95] (95,105]
可以看到Levels 就是生成的连续区间。
order(c, na.last = TRUE, decreasing = FALSE):
排列数字型向量,返回排序完的索引号
base::sort()
返回一个排序结果。
base::rank()
返回一个排位结果。
base::all(condition):
all中输入向量条件,例如vec>0,如果向量vec中的所有值都大于0返回true。
base::any(condition):
any中输入向量条件,例如vec>0,如果向量vec中存在值都大于0返回true。
base::subset(vec,condition):
subset在处理vec的时候和普通筛选的区别在于处理NA值上,
> x<-c(6,1:3,NA,12)
> x[x>5]
[1] 6 NA 12
> subset(x,x>5)
[1] 6 12
集合函数:
union(x, y)
intersect(x, y)
setdiff(x, y)
setequal(x, y) #判断两个集合是否相等.


你可能感兴趣的:(向量与因子操作)