0

簡単な質問があります。R の aggregate() 関数は、指定された条件に基づいてデータフレームを操作します。

aggregate(my.data.frame, list(desired column), function to be applied)がデフォルトの使用法です。

データフレームの列固有の値の平均や中央値などの単純な関数を計算すると便利です。ただし、私が持っているのはデータフレームで動作しない関数ですが、特定の列でこの関数を実行した後、データフレームを集計する必要があります。データセットをお見せしましょう:

GPS データセット

したがって、各 BSSID の経度と緯度の点の重心を計算する必要があり、そのように集計する必要があります。さまざまなパッケージからオンラインで見つけた関数は、データフレームではなく値のマトリックスの重心を計算しますが、aggregate() はデータフレーム以外では機能しません。

よろしくお願いします:)

4

2 に答える 2

0

私はこれが好きdplyrです-構文は私にはいいようです。

my.data.frame %>% 
    group_by(bssid) %>% 
    summarise(centroidlon = myfunction(lon, lat)[1], 
              centroidlat = myfunction(lon, lat)[2])

が速い場合myfunction、これは機能しますが、遅い場合は、関数をbssid.

%>%演算子なしで代替方法を表示するように編集

grouped.data.frame = group_by(my.data.frame, bssid)
summarised.data.frame = summarise(grouped.data.frame,
                                  centroidlon = myfunction(lon, lat)[1],
                                  centroidlat = myfunction(lon, lat)[2])

演算子は左辺を取り、それ%>%を最初の引数として右辺に渡します。何百ものネストされたブラケットに混乱することなく、ステートメントを連鎖させるのに役立ちます。私の意見では、それは物事を読みやすくします。

于 2016-02-07T10:02:28.743 に答える