我有一个包含15-25个数据点的列表/框架。它们都在0到100之间,并且有一些簇(例如大约在72左右)。当显示这些数据时,我想增加每对点之间的距离,使其至少为2(例如69.4和71.4将成为两个相邻的点)。
但是,我需要确保保留整体顺序并尽可能地使每个点保持原来的位置。
我的点列表只是
scores <- c(13.343, 17.998, 25.413, 27.721, 33.361, 47.263, 52.298, 55.981,
57.851, 72.038, 72.204, 72.296, 73.472, 75.925, 80.748, 85.998)
我希望增加点簇之间的距离。在72.038 - 72.296这个范围内的点将会向下移动,以确保更加均匀的分布。
spacedScores <- c(13.343, 17.998, 25.413, 27.721, 33.361, 47.263, 52.298,
55.981, 57.851, 67.925, 69.925, 71.925, 73.925, 75.925,
80.748, 85.998)
有没有关于如何在R中最干净地完成这个任务的建议?
澄清一下:我不一定要求数学上最优解,只需要一个相当好的解决方案。我也想象大部分时间一些点需要向上移动,一些点需要向下移动 - 这是可以接受的。
((2.1-diff)/2)
并将相同的值添加到上面的下一个值来推动上下移动。本质上只是通过半原始距离相互推开,而不是整个距离移动一个。这太好了,谢谢。我还必须使用 2.1-...,这样它就不会陷入无法解决的循环中。 - chmullig