R 返回不包含整数(0)的缺失值
我想确定一个向量中的哪些值存在于另一个向量中。有时,在我的应用程序中,第一个向量的值都不存在;在这种情况下,我希望是NA。发生这种情况时,我当前的方法返回整数(0):R 返回不包含整数(0)的缺失值,r,R,我想确定一个向量中的哪些值存在于另一个向量中。有时,在我的应用程序中,第一个向量的值都不存在;在这种情况下,我希望是NA。发生这种情况时,我当前的方法返回整数(0): l <- 1:3 m <- 2:5 n <- 4:6 l[l %in% m] 整数(0) 讨论如何使用length捕获整数(0),但是否有一种方法可以首先避免整数(0),并且只需一步即可完成此操作?对上一个问题的回答表明可以使用任何,但我看不出在本例中该如何工作。您可以执行以下操作: l[match(l, n)
l <- 1:3
m <- 2:5
n <- 4:6
l[l %in% m]
整数(0)
讨论如何使用length
捕获整数(0),但是否有一种方法可以首先避免整数(0),并且只需一步即可完成此操作?对上一个问题的回答表明可以使用任何,但我看不出在本例中该如何工作。您可以执行以下操作:
l[match(l, n)]
[1] NA NA NA
或:
您可以使用自定义函数捕获整数(0)
:
l <- 1:3
m <- 2:5
n <- 4:6
returnsafe <- function(a, b) {
result <- a[a %in% b]
if(is.integer(result) && length(result) == 0L) {
return(NA)
} else {
return(result)
}
}
> returnsafe(l, n)
[1] NA
li
any(l[match(l, n)])
[1] NA
l <- 1:3
m <- 2:5
n <- 4:6
returnsafe <- function(a, b) {
result <- a[a %in% b]
if(is.integer(result) && length(result) == 0L) {
return(NA)
} else {
return(result)
}
}
> returnsafe(l, n)
[1] NA