R:データフレーム内のサブセット化された行のみにforループを適用する方法

lukeeddyolpe

私はデータフレームを持っています

head(df)
                 time     LON     LAT MAG
1 1965-01-12 13:32:25 87.8286 27.3829 6.1
2 1965-01-12 13:55:20 87.6567 27.3269 5.3
3 1965-02-18 04:26:36 94.1127 25.0251 5.5
4 1965-02-25 10:34:07 94.5712 23.6672 5.3
5 1965-04-11 22:33:05 92.2023 26.6941 5.1
6 1965-04-30 07:13:25 95.8880 28.3319 4.4

それは地震の時間、場所、規模であり、約4000行が含まれています。

MAG >= 5イベントをサブセット化しました。そのようなイベントごとにイベントから10日以内に確認したいと思います。次に、各MAG >= 5イベントのこの10日間の時間枠で、半径50km以内のイベントを出力します

library(dplyr)
library(lubridate)
library(geosphere)

t <- filter(df, MAG >= 5) 

for (i in 1:nrow(t)){
  data1 <- filter(t, time <= time[i] + days(10) & time >= time[i])
  p <- select(data1, LON, LAT)
  l <- distm(p)[1,]            # first row of the distance matrix between each event
  for (j in 1:length(l)){
    if (l[j] <= 50000 & l[j] != 0){       # within 50 kms and excluding the event itself
      print(data1[j,])
    }
  }
}

ただし、これはデータフレーム内の値のみをチェックしますtMAG >= 5元のデータフレームでイベントから10日以内に確認するにはどうすればよいですかdf

完璧

mergeネストされたforループを使用して回避するセットベースのアプローチを検討してください具体的には、10日50 km以内に、5等を超える地震を他のすべての地震イベントと一致させるサブセット化クロスジョインを実行します。N = 4,000の場合、以下の行が実行可能であるはずです。用途基地Rコード下しかしdplyr方法のために調整することができます(filterinner_joinarrange)。

mag5_df <- subset(df, MAG >= 5) 

# CROSS JOIN PAIRING OF MAG 5 EVENTS AND ALL OTHER EARTHQUAKES WITHIN 10 DAYS
merge_df <- subset(merge(mag5, df, by=NULL, suffixes=c("", "_")), 
                   time_ >= time & time_ <= time + lubridate::days(10))

# CALCULATE DISTANCE BETWEEN LAT/LON PAIRS
merge_df$dist_m <- geosphere::distVincentyEllipsoid(merge_df[c("LON", "LAT")], 
                                                    merge_df[c("LON_", "LAT_")])

# SUBSET TO WITHIN 50 KM AND ORDER OUTPUT BY MAG 5 LAT/LON, TIME, AND DISTANCE
near50km_df <- subset(merge_df, dist_m > 0 & dist_m <= 5E4)
near50km_df <- data.frame(with(near50km_df, near50km_df[order(LAT, LON, time, dist_m),],
                          row.names = NULL)

# DISPLAY ALL MAG 5 EVENTS AND QUALIFIED PAIRS
near50km_df

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

データフレーム内の行のサブセットに適用関数を使用する-ベクトル化されたソリューション

分類Dev

ループ内のデータをサブセット化してから、rで生成されたデータフレームデータに対してループを実行する方法

分類Dev

rのforループ内のデータフレームのサブセットを平均化する方法

分類Dev

グループ化されたセットに関数を適用し、列を既存のデータフレームにバインドする方法

分類Dev

「整頓された」データフレーム内の選択されたポイントの上のN行をサブセット化する方法

分類Dev

粒度のレベルでデータをサブセット化し、Rの各データフレームに関数を適用する

分類Dev

別のデータフレームの日時に条件付けられたデータフレームの特定の行をサブセット化する方法

分類Dev

グループ化してから、Rのグループ内の行のサブセット全体に関数を適用するための効率的な方法

分類Dev

Rのサブセット化されたデータを含むリストに関数を適用する

分類Dev

グループ化された分位数に基づいて元のデータフレームをサブセット化する

分類Dev

R-関数内でデータフレームをサブセット化するときに選択された未定義の列

分類Dev

データフレームの各サブセット内に関数を適用する

分類Dev

Rのデータフレームの列のサブセットにモデルを適合させる

分類Dev

Rを使用して、データフレーム内の個々の列の最小値に基づいて特定の列の行をサブセット化する方法

分類Dev

データフレームをサブセット化するときに選択された未定義の列

分類Dev

データフレームrのサブセットに関数を適用する

分類Dev

データフレームrのサブセットに関数を適用する

分類Dev

R-複数のデータフレームから特定の行をサブセット化する方法

分類Dev

サブセットデータフレームへの変更をソースデータフレームに適用する方法

分類Dev

サブセットデータフレームでモデルを実行するためのループ

分類Dev

データフレーム内の行の次の空でないセルに関数を適用する方法

分類Dev

rのデータフレームのサブセットの平均を計算するためのループ

分類Dev

リストを作成するために関数をデータフレームに適用するためのベクトル化された方法

分類Dev

データフレーム(またはサブセット化されたデータフレーム)のリスト上で地理マッピング関数をループする方法

分類Dev

2つのデータフレームの行名に一致し、Rの一致する行のみをサブセット化します

分類Dev

Rを使用したデータフレーム内の行のサブセット化と繰り返し

分類Dev

データフレーム内の行をランダムに削除する方法(ただし、特定のサブグループのみ)(dplyr :: sample_nを使用?)

分類Dev

Rのデータフレームのサブセットを含む関数をループする方法は?

分類Dev

別のデータセットで指定された値に基づいてデータフレームをサブセット化する

Related 関連記事

  1. 1

    データフレーム内の行のサブセットに適用関数を使用する-ベクトル化されたソリューション

  2. 2

    ループ内のデータをサブセット化してから、rで生成されたデータフレームデータに対してループを実行する方法

  3. 3

    rのforループ内のデータフレームのサブセットを平均化する方法

  4. 4

    グループ化されたセットに関数を適用し、列を既存のデータフレームにバインドする方法

  5. 5

    「整頓された」データフレーム内の選択されたポイントの上のN行をサブセット化する方法

  6. 6

    粒度のレベルでデータをサブセット化し、Rの各データフレームに関数を適用する

  7. 7

    別のデータフレームの日時に条件付けられたデータフレームの特定の行をサブセット化する方法

  8. 8

    グループ化してから、Rのグループ内の行のサブセット全体に関数を適用するための効率的な方法

  9. 9

    Rのサブセット化されたデータを含むリストに関数を適用する

  10. 10

    グループ化された分位数に基づいて元のデータフレームをサブセット化する

  11. 11

    R-関数内でデータフレームをサブセット化するときに選択された未定義の列

  12. 12

    データフレームの各サブセット内に関数を適用する

  13. 13

    Rのデータフレームの列のサブセットにモデルを適合させる

  14. 14

    Rを使用して、データフレーム内の個々の列の最小値に基づいて特定の列の行をサブセット化する方法

  15. 15

    データフレームをサブセット化するときに選択された未定義の列

  16. 16

    データフレームrのサブセットに関数を適用する

  17. 17

    データフレームrのサブセットに関数を適用する

  18. 18

    R-複数のデータフレームから特定の行をサブセット化する方法

  19. 19

    サブセットデータフレームへの変更をソースデータフレームに適用する方法

  20. 20

    サブセットデータフレームでモデルを実行するためのループ

  21. 21

    データフレーム内の行の次の空でないセルに関数を適用する方法

  22. 22

    rのデータフレームのサブセットの平均を計算するためのループ

  23. 23

    リストを作成するために関数をデータフレームに適用するためのベクトル化された方法

  24. 24

    データフレーム(またはサブセット化されたデータフレーム)のリスト上で地理マッピング関数をループする方法

  25. 25

    2つのデータフレームの行名に一致し、Rの一致する行のみをサブセット化します

  26. 26

    Rを使用したデータフレーム内の行のサブセット化と繰り返し

  27. 27

    データフレーム内の行をランダムに削除する方法(ただし、特定のサブグループのみ)(dplyr :: sample_nを使用?)

  28. 28

    Rのデータフレームのサブセットを含む関数をループする方法は?

  29. 29

    別のデータセットで指定された値に基づいてデータフレームをサブセット化する

ホットタグ

アーカイブ