バイナリ値で新しい列(df_one $ acceslane)を作成したいとします。 df_one$direction == df_two$direction
場合とdf_one$location
とdf_two$location
がほぼ同じであれば - それは1rのseqでネストされたforループを高速化
df_oneでなければなりません(>ループのネストされた中で距離を参照してください):
direction | location | acceslane
L | 12.3 | NA
R | 14.8 | NA
df_two:
direction | location
L | 12.5
R | 145.0
for (i in 1:nrow(df_one)) {
for (j in 1:nrow(df_two)) {
Distance <- seq(df_two[j, 2]-.5, df_two[j, 2]+.5, by = .1)
if ((x[i, 1] == df_two[j, 1]) & (x[i, 2] %in% Distance)){
df_one[i, 3] <- 1
break}
else{df_one[i, 3] <- 0}
}
}
このコードは機能しますが、それほど高速ではありません。どうすればこれをスピードアップできますか?
あなたの例では、私のために実行されますが、私はあなたがローリングを行うために探していると思い参加していません
Locationsを閉じるには、0.5境界内にあることを意味しますか、最初の10進数で同等にしますか? (L、12.3)と(L、12.45)は、アクセルレーン= 1と考えられるだろうか? – ab90hi
@ ab90hiそれぞれの範囲が小数点以下5桁以下の場合は一致する必要があります。したがって、df_one $ location = 12.30とdf_two $ location = 12.79の場合は一致する必要があります。 df_two $ location = 12.79が12.81であれば、一致してはいけません。 – Arnand
@Armans最初はローリングジョイントをしていないので、アイデアは良い考えではありません。コメントを整理する – Tensibai