由於以前學習的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