【发布时间】:2019-04-08 15:10:21
【问题描述】:
我有一个 data.table ,其中包含有关每组(360 度)标题的信息。
library(data.table)
dt <- data.table(headings = c(340,0,20,90,180,270,91), grp = c(1,1,1,2,2,2,2))
headings grp
1: 340 1
2: 0 1
3: 20 1
4: 90 2
5: 180 2
6: 270 2
7: 91 2
在 grp 1 中,标题之间的距离是 20、20 和 320,而在 grp 2 中,它是 1、89、90 和 180。我想找到标题之间的最大距离并将它们添加到每个组中,所以结果会看起来像这样:
headings grp maxHeading
1: 340 1 320
2: 0 1 320
3: 20 1 320
4: 90 2 180
5: 180 2 180
6: 270 2 180
7: 91 2 180
我不一定想要一个 data.table 解决方案,但如果有一个就好了。
编辑:为了澄清,我更改了值并在 grp 2 中添加了一个数据点。这里还有两个用于可视化的饼图。
【问题讨论】:
-
你是怎么想出 320 和 260 的??
-
在grp 1中,最长距离为20到340 = 320°。在 grp 2 中,最长的是从 200 到 100 = 260°。就像指南针上的一样。
-
在一个组中,取标题的最大值和最小值之间的差异是否足够,还是只考虑两个连续标题之间的顺时针差异?
-
我尝试过编辑。我觉得有点难以解释,希望现在清楚一点。
-
在发布答案后反复更改示例可能是一种不好的形式。您可以添加新示例而不是 dt2
标签: r data.table 360-degrees