这里有两个使用 sapply 的示例,第一个示例有效,但第二个示例在 x 为大数时产生 NA。有人可以帮忙吗?
这有效x = 1:10
y = 5:15
sapply(x, function (i) min(abs(x[i]-y)))
但这不起作用
x = 100000:100010
y = 5:15
sapply(x, function (i) min(abs(x[i]-y)))
最佳答案
sapply 中内联函数中的参数是第一个参数的每个值插入的内容,因此在您的情况下 x[i] 没有使用从 1 到 10 或其他的 i,但是i 从 x[1] 到 x[end]。
sapply(x,function(i) min(abs(i-y)))
这就是您想要做的(获取x
的每个元素并从中减去y)。
> x = 100000:100010
> y=5:15
> sapply(x,function(i) min(abs(i-y)))
# [1] 99985 99986 99987 99988 99989 99990 99991 99992 99993 99994 99995
关于r - 当 R 中使用大量数字时,Sapply 会产生 NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25939269/