【问题标题】:R Geospatial Aggregation: Collapsing Directionality without Using Forloop (Remove Duplicates)R地理空间聚合:在不使用Forloop的情况下折叠方向性(删除重复项)
【发布时间】:2015-04-17 12:08:49
【问题描述】:

我正在尝试对包含方向性信息的地理空间数据执行聚合(基本和)。我试图折叠方向性维度。所以如果 A -> B 和 B -> A,那么两个都算。

我有以下数据:

u <- data.frame(str_statn=c(42, 106, 3, 6, 4), end_statn=c(106, 42, 6, 3, 14), cnt=c(23, 7, 100, 102, 1))

我需要让它看起来像这样:

v <- data.frame(str_statn=c(42, 3, 4), end_statn=c(106, 6, 14), cnt=c(30, 202, 1))

我知道我可以使用 for 循环,但我一直在寻找更优雅、更快速的解决方案。任何帮助,将不胜感激。谢谢!

【问题讨论】:

    标签: r combinations aggregation


    【解决方案1】:

    您可能必须先按行排序,然后简单地聚合,这是一个可能的解决方案

    u[1:2] <- t(apply(u, 1, function(x) sort(x[1:2])))
    aggregate(cnt ~., u, sum)
    #   str_statn end_statn cnt
    # 1        42       106  30
    # 2         3         6 202
    # 3         4        14   1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-03
      • 2015-06-14
      • 1970-01-01
      • 2022-07-21
      • 1970-01-01
      • 2014-12-19
      • 1970-01-01
      • 2020-08-28
      相关资源
      最近更新 更多