【发布时间】:2019-07-18 22:17:58
【问题描述】:
我每小时都有一个 df 跟踪点的移动。我想通过添加每小时坐标之间的距离来找到该组/试验行进的总距离,但我对应用函数感到困惑。
我想说“在每个组/试验中,总和 [距离(hour1-hou2), distance(hour2=hour3), distance(hour3-hour4)....] 直到当前时间,所以在每一行,我有一个累积的行驶距离值。
我在下面创建了一个假 df。
paths <- data.frame(matrix(nrow=80,ncol=5))
colnames(paths) <- c("trt","trial","hour","X","Y")
paths$trt <- rep(c("A","B","C","D"),each=20)
paths$trial <- rep(c(rep(1,times=10),rep(2,times=10)),times=4)
paths$hour <- rep(1:10,times=8)
paths[,4:5] <- runif(160,0,50)
#this shows the paths that I want to measure.
ggplot(data=paths,aes(x=X,y=Y,group=interaction(trt,trial),color=trt))+
geom_path()
我可能想添加一列paths$dist.traveled 来跟踪每个小时。
我想我可以使用apply 甚至aggregate,但我一直在使用PointDistance 来查找距离,所以我有点困惑。我也不想在循环中做循环,因为真实的数据集很大。
【问题讨论】:
-
你想通过试验和 trt 移动还是仅仅 trt?
-
那么对于每个组(trt 和试验的组合),您想要每小时总距离的总和吗?您能否添加一个示例来说明您的预期结果如何?
-
还有你的坐标是什么crs?
-
@e.matt 我想按治疗和试验分组。对不起,我应该澄清更多。立即编辑。