由于以前学习的R全还给老师了,近期从新从头学习R语言,这是最近get的一些相关函数用法,对此做一个总结回顾
**
match
作用就是可以用来筛选、匹配。
实际意义可以看
例如:
> x=c(1,3,7,4)
> y=c(1,3,8,9,0)
> match(x,y)
[1] 1 2 NA NA
返回x向量在y向量中所处的位置,x向量元素不存在y向量中的返回y
可进一步延申为数据不同表中关于字段的一个处理
如:
data1$y1 = data2$y11[match(data$a1,data2$a1)]
table1
y1 | a1 |
---|---|
null | string |
table2
a1 | y11 |
---|---|
string | string |
意思为:表1(data1)的y1字段目前是空的,
我们可通过表1的a1字段去匹配到表2的a2字段,然后进一步找到每个y1字段对应的值
类似的一个用法为%in%
其含义为x在y中是否存在,y可以是表中字段也可以是向量等
> x=c(1,3,7,4)
> y=c(1,3,8,9,0)
> x %in% y
[1] TRUE TRUE FALSE FALSE
与match函数的用法差异在于,%in%返回的是布尔值即TRUE和FALSE 而match则是返回位置
which()函数的用法
用法which(test)。
返回满足括号条件或者括号内为TRUE的位置
which还有常用的which.max()和which.min()的用法
如:
> x=c(1,3,7,4)
> y=c(1,3,8,9,0)
> which(x>3)
[1] 3 4
> which(x<2)
[1] 1
> which.max(x)
[1] 3
> which.min(y)
[1] 5
is.na()函数的用法
判断括号内的字段或向量等是否为NA,是返回TRUE,否返回FALSE
> x = c(22,212,NA,3222222,NA)
> is.na(x)
[1] FALSE FALSE TRUE FALSE TRUE
与which()函数结合起来用 就可以判断空值的位置,在数据处理时,需要处理空值的可进行填充或进行删除
> x = c(22,212,NA,3222222,NA)
> is.na(x)
[1] FALSE FALSE TRUE FALSE TRUE
> which(is.na(x))
[1] 3 5