【发布时间】:2014-10-19 02:24:46
【问题描述】:
我有一个如下的数字向量/数组。在按降序排序后,我想要一个连续元素之间的差异数组:我想从第一个元素中减去第二个元素,从 nd 中减去第三个元素等等......我可以有 n 个元素......我怎样才能实现一样吗?
差异数组将有 n-1 个元素
a=c(2,3,5)
a=sort(a,decreasing = TRUE)
在上述情况下,差异数组将是 (2,1)
【问题讨论】:
我有一个如下的数字向量/数组。在按降序排序后,我想要一个连续元素之间的差异数组:我想从第一个元素中减去第二个元素,从 nd 中减去第三个元素等等......我可以有 n 个元素......我怎样才能实现一样吗?
差异数组将有 n-1 个元素
a=c(2,3,5)
a=sort(a,decreasing = TRUE)
在上述情况下,差异数组将是 (2,1)
【问题讨论】:
我认为您正在寻找 diff 函数。最简单的是,使用abs 应用绝对值(或仅乘以-1),以从您的排序向量中获得所需的结果。
您可以使用以下任何一种方法:
> a <- c(5, 3, 2)
> -1*diff(a)
# [1] 2 1
> abs(diff(a))
# [1] 2 1
> rev(diff(rev(a)))
# [1] 2 1
【讨论】:
a[-length(a)] - a[-1]