【发布时间】:2017-08-15 18:47:03
【问题描述】:
我有一个数据框,其中包含交通系统上的 wifi 下载带宽和 GPS 数据(纬度和经度)。我想从数据中确定车辆向北移动时的平均带宽是多少,向南移动时的平均带宽是多少。
(来自 df 的带宽和纬度值)
bandwidth <- df$bandwidth
latitude <-df$latitude
(这两个都有 2800 个条目)
(根据车辆是向北还是向南移动,创建空向量以填充带宽值)
movingnorth <- vector('numeric')
movingsouth <- vector('numeric')
(如果火车向北移动,则用带宽向量中的数据填充移动的北向量)
for(y in latitude){
if(latitude[y]>= latitude[y+1]){
movingnorth <- c(movingnorth, received[y])}
}
在这里,我基本上是说如果纬度值上升,那么车辆正在向北移动,因此将该位置的带宽值输入到movingnorth向量中。我希望仅将带宽向量中的一部分值添加到移动北向量中,但会添加所有 2800 个值。我在这里做错了什么?
【问题讨论】:
-
您可能想使用
for(y in seq_along(latitude))或for(y in 1:length(latitude))。 -
成功了,非常感谢。为什么我原来的方法不起作用?
-
如果当前位置高于下一个位置,您不是说它会向南吗?
-
另外,纬度是一个向量,您没有具体说明您想用它测量什么,所以这就是为什么使用
1:length(latitude)是有意义的 -
@sweetmusicality 是的,你是对的