假设我有一个向量x<-c(1,2,NA,4,5,NA).
我将一些神话代码应用于该向量,从而产生另一个向量, y<-c(1,NA,3, 4,10,NA)
现在我想知道我的两个向量在哪个位置不同,其中我将两个NAs视为相同,一个NA和非NA(例如两个示例向量的第二个元素).
具体来说,对于我的例子,我想最终得到一个矢量控件c(2,3,5).
对于我的用例,我不满足于逻辑变量的向量,但显然我可以轻松转换(which),所以我也会接受它.
我有一些解决方案,如:
simplediff<-x!=y
nadiff<-is.na(x)!=is.na(y)
which(simplediff | nadiff)
Run Code Online (Sandbox Code Playgroud)
但感觉就像我在这里重新发明轮子一样.有更好的选择吗?
循环和使用identical怎么样?
!mapply(identical,x,y)
[1] FALSE TRUE TRUE FALSE TRUE FALSE
Run Code Online (Sandbox Code Playgroud)
对于职位:
seq_along(x)[!mapply(identical,x,y)]
[1] 2 3 5
Run Code Online (Sandbox Code Playgroud)
要么
which(!mapply(identical,x,y))
[1] 2 3 5
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2830 次 |
| 最近记录: |