r - 当 R 中使用大量数字时,Sapply 会产生 NA

标签 r sapply

这里有两个使用 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/

相关文章:

r - 通过循环从数据帧填充矩阵

r - 错误ggplot(seq.int(0,to0 - from,by)错误): 'to' must be finite)

r - 无法将 `for` 循环转换为 `apply` 函数

R:计算字符串列表中的所有组合(特定顺序)

vector - 将具有多个参数的函数应用于 Julia 中的向量

r - 使加权边缘列表像对 R 中的数据框

r - 如何手动更改传单 map /R 中的发散颜色?

r - 在分组数据上使用工具提示时,ggvis 中的值消失

将特殊字符 * 重新插入字符串中的预定义位置

r - 从 R 中的 sapply 函数取回数据帧序列