【发布时间】:2019-02-24 21:31:09
【问题描述】:
我有一个像下面这样的向量:
x= c(1,23,4,15,8,17,21)
在对向量中的值进行排序后,我们有:
c(1,4,8,15,17,21,23)
我需要的输出是:
c(3, 3, 4, 2, 2, 2, 2)
其中包含该值与其最接近的值之间的差异。
但是如果我想在没有排序的情况下输出,有什么解决方案吗?我需要一个像 c(3,2,3,2,4,2,2) 这样的输出来知道哪个样本在输出表中具有最大值(这里第 5 个值是结果)
【问题讨论】:
-
@PierreLafortune 我是这样理解这个问题的:取向量的每个元素与任何其他元素之间的差异,返回无符号最小值。
-
所以基本上你想要一个函数,从所有内容中减去所有内容并打印每个值的最小差异......?
-
未排序的向量也应该适用于我之前展示的
outer解决方案。 -
你不想排序的原因是什么?它使任何可能的解决方案都更加高效。
-
@akrun 您的解决方案使用了太多内存,无法与其他对象一起使用。检查
object.size(m1)看看它的增长速度与x一样。
标签: r statistics