0
以下
における出力のすべての行の1つだけヘッダがデータセットである必要があります。私はgiodist
が200メートルよりも大きいのエントリとtdiff
を必要はデータフレームで出力を必要とするか、またはR
> head(u1spdf)
coordinates A Latitude Longitude Altitude Date.No..Of.days DateTime geodist tdiff
1 (116.3184, 39.9847) 1 39.98470 116.3184 492 39744.12 2008-10-23 02:53:04 0.00000 0
2 (116.3184, 39.98468) 2 39.98468 116.3184 492 39744.12 2008-10-23 02:53:10 3.52000 6
3 (116.3184, 39.98469) 3 39.98469 116.3184 492 39744.12 2008-10-23 02:53:15 2.83000 5
4 (116.3184, 39.98469) 4 39.98469 116.3184 492 39744.12 2008-10-23 02:53:20 2.74000 5
5 (116.3183, 39.98465) 5 39.98465 116.3183 492 39744.12 2008-10-23 02:53:25 11.03000 5
6 (116.318, 39.98461) 6 39.98461 116.3180 493 39744.12 2008-10-23 02:53:30 20.81404 5
は、SEC
1200よりも大きいです :私はこのためのアルゴリズムの下に実行したgeodist
は、2点間のDISTであり、そしてtdiff
2点
間の時間差分であります10
i <- 0
pointNum <- nrow(u1spdf) #the number of GPS points
while (i < pointNum) {
j <- i+1; Token <- 0;
while (j < pointNum) {
cdist <- u1spdf$geodist[i+1] #calculated the distance between points
#message("cdist: ",cdist)
if (cdist > 200 | cdist ==0) {
ctime <- u1spdf$tdiff[i+1] #calculated the time span between two points
#message("ctime: ",ctime)
if (ctime > 1200 | ctime ==0) {
print(u1spdf[i+1, ])
i <- j
Token <- 1
}
}
break
j <- j+1
}
if (Token!=1) {
i <- i+1
}
このアルゴリズムは、出力の下に与えられている:1つのデータフレームまたはそのヘッダが毎回
繰り返されるよう
coordinates A Latitude Longitude Altitude Date.No..Of.days DateTime geodist tdiff
149 (116.2868, 39.99578) 149 39.99578 116.2868 716 39744.17 2008-10-23 04:08:07 1727.514 3772
coordinates A Latitude Longitude Altitude Date.No..Of.days DateTime geodist tdiff
471 (116.3202, 40.00478) 471 40.00478 116.3202 105 39744.4 2008-10-23 09:42:25 690.0795 18453
は、この出力を必要とするあなたは、私がデータセット
として出力上で取得することができますどのように提案してください可能性があり
などの他の関数で直接
u1spdf[meets_conditions, ]
を使用することができます。 'newdf < - u1spdf [u1spdf $ geodist> 200&u1spdf $ tdiff> 1200、]' – rosscova今後の参考に、私たちが見るべき最小限の再現可能な例を与えることが重要です。サンプルデータセットに条件を満たす行が含まれていないため(geodist> 200&tdiff> 1200)、誰でもデータのコードをテストすることが困難です。 – rosscova
ありがとうございます、両方のソリューションが動作しています。 –