我有以下情况:
vec1 <- c("A", "B", "D", "C", "E", "A", "C")
vec2 <- c("A", "B", "C", "D", "F")
Run Code Online (Sandbox Code Playgroud)
第一个问题:哪一个是重复的?- 对于 vec1 回答“A”和“C”,对于 vec2 回答 0
第二个问题:确定哪个是 vec1 但不在 vec2 中,无论顺序如何(答案“E”)
或反之亦然(回答“F”)
which(vec1 !=vec2)
which(vec2 !=vec1)
[1] 3 4 5 7
Warning message:
In vec1 != vec2 :
longer object length is not a multiple of shorter object length
Run Code Online (Sandbox Code Playgroud)
这不是我所期望的......
对于第一个问题,尝试?duplicated
vec1.dup <- duplicated(vec1)
unique(vec1[vec1.dup])
[1] "A" "C"
Run Code Online (Sandbox Code Playgroud)
对于第二个,尝试一下?setdiff。您需要 vec1 中没有的 vec2 值。
setdiff(vec2, vec1)
[1] "F"
Run Code Online (Sandbox Code Playgroud)
vec1 中重复的元素:
vec1[duplicated(vec1)]
[1] "A" "C"
Run Code Online (Sandbox Code Playgroud)
vec1 中不在 vec2 中的元素:
vec1[is.na(match(vec1,vec2))]
[1] "E"
Run Code Online (Sandbox Code Playgroud)
反之亦然:
vec2[is.na(match(vec1,vec2))]
[1] "F"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4169 次 |
| 最近记录: |