Iは、2つのデータフレームを有しており、データフレームのdputを以下に示す:検索とマッチング2つのデータフレーム
dput(DF1)
structure(list(observationtime = structure(c(0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L
), format = "h:m:s", class = "times"), observationdate = structure(c(15309,
15309, 15309, 15309, 15309, 15309, 15309, 15309, 15309, 15309,
15309, 15309, 15309, 15309, 15309, 15309, 15309, 15309, 15309,
15309), class = "Date"), screentemperature = c(9.1, 9.4, 6.8,
5.7, 1.6, 6.3, 5.2, 4.7, 6.8, 8.7, 6.9, 9.6, 9.4, 9.5, 8.1, 7.7,
7.9, 8.9, 6.6, 6.8), significantweathercode = c(8L, 7L, 8L, 9L,
15L, 12L, 12L, 15L, 15L, 9L, 15L, 7L, 2L, 7L, 12L, 8L, 12L, 8L,
8L, 12L), latitude = c(60.139, 58.954, 57.358, 58.214, 57.725,
57.859, 57.257, 58.288, 56.867, 57.82, 57.206, 58.454, 57.6494,
57.712, 57.077, 56.85, 57.206, 57.698, 56.497, 55.681), longitude = c(-1.183,
-2.9, -7.397, -6.325, -4.896, -5.636, -5.809, -4.442, -4.708,
-3.97, -3.827, -3.089, -3.5606, -3.322, -2.836, -2.27, -2.202,
-2.121, -6.887, -6.256)), .Names = c("observationtime", "observationdate",
"screentemperature", "significantweathercode", "latitude", "longitude"
), row.names = c(1L, 3L, 4L, 5L, 6L, 7L, 8L, 10L, 11L, 12L, 13L,
14L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 23L), class = "data.frame")
dput(DF2)
structure(list(time = structure(c(0.0104166666666667, 0.0590277777777778
), format = "h:m:s", class = "times"), data = structure(c(15309,
15310), class = "Date"), latitude = c(53.674, 43.978), longitude = c(-1.222,
-5.346)), .Names = c("time", "data", "latitude", "longitude"), row.names = c(NA,
-2L), class = "data.frame")
を
私はdf1の値を使ってdf2からtempratureとsignificantweathercodeを抽出しようとしています。たとえば、df2の日付はdf1の日付と完全に一致しますが、時刻は同じではない可能性があります。したがって、最も近い時刻を見つけるのに15〜30分のしきい値を指定する必要があります。同時に、それらが正確に一致しない可能性があり、最も近いマッチを見つけるために閾値が必要とされるので、それらの座標を使用する。手順は次のとおりです。
- マッチ、最も近い時間を見つけていない場合は、完全一致の場所/ coordiantesは、正確ではない一致した場合、最も近い
- マッチの時間を見つける日付
- マッチ
私が持っているソリューションは、
- サブセット日付に基づいてDF1からのデータがある
- 時間の差を探す最小時間差観察と最小距離
- を選択し、実際にデータがデータフレームの各々に対して半分万行に近い含有大きい
を調整します。私はこのようなマッチングを試みるために効率的な方法をrで見つけようとしています。
可能性のある回避策を歓迎します。
各データフレームにどれだけのユニークな場所があるかによって多くの違いがあります。 – Thierry
df1には170のユニークな場所がありますが、df1には多くの場所があります。我々は何千ということを話している。 – syebill