R語言中取交集函數intersect


1、測試數值

> dat1 <- 1:8
> dat2 <- 3:10
> intersect(dat1, dat2) ## 直接取兩個數值型的交集
[1] 3 4 5 6 7 8

 

2、數值有重復的情況

> dat1 <- c(2, 3, 2, 4, 5, 3, 6, 3, 4, 8)
> dat2 <- c(7, 3, 4, 9, 2, 10, 5)
> intersect(dat1, dat2) ## intersect可以直接去重復
[1] 2 3 4 5
> intersect(dat2, dat1)   ## 交換兩個數據的位置,輸出的順序有差異, 但是結果一致
[1] 3 4 2 5

 

3、字符串的情況

> dat1 <- c("x", "a", "b", "b", "a", "d","c", "f", "d")
> dat2 <- c("c", "b","b", "g", "y", "d", "d", "m")
> intersect(dat1, dat2) ## 對字符串同樣適用
[1] "b" "d" "c"
> intersect(dat2, dat1)
[1] "c" "b" "d"

 

4、數值和字符串之間的比較

> dat1 <- c(3, 5, 1, 2,2, 3, 3, 7, 5, 8, 3)
> dat2 <- c("2", "3", "9", "5", "6", "1", "10", "1")
> class(dat1)
[1] "numeric"
> class(dat2)
[1] "character"
> intersect(dat1, dat2)   ## intersect函數可以實現字符串與數字的比較, 而且返回值的屬性與兩個比較數據的位置有關,輸出數據類型為第二個數據的屬性
[1] "3" "5" "1" "2"
> intersect(dat2, dat1)
[1] 2 3 5 1

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM