Этот вопрос обновлялся несколько раз.
Это еще один вопрос из о том, как создавать кадры данных (а не только один) одновременно в r .Я действительно не могу понять сообщение об ошибке.У меня есть два фрейма данных:
> route1
X1 X2 X3
1 Balboa Park, san diego, ca Coronado, san diego, ca USS Midway, san diego, ca
2 Balboa Park, san diego, ca USS Midway, san diego, ca Coronado, san diego, ca
3 Coronado, san diego, ca Balboa Park, san diego, ca USS Midway, san diego, ca
4 Coronado, san diego, ca USS Midway, san diego, ca Balboa Park, san diego, ca
5 USS Midway, san diego, ca Balboa Park, san diego, ca Coronado, san diego, ca
6 USS Midway, san diego, ca Coronado, san diego, ca Balboa Park, san diego, ca
и
> place
# A tibble: 8 x 5
name hour type short abbr
* <chr> <dbl> <chr> <chr> <chr>
1 Balboa Park, san diego, ca 4 place Balboa Park bal
2 USS Midway, san diego, ca 2 place USS Midway midway
3 Coronado, san diego, ca 4 place Coronado coro
4 Cabrillo National Monument, san diego, ca 2 place Cabrillo cab
5 La Jolla Cove, san diego, ca 2 place La Jolla ljc
6 4002 Wallace St, San Diego, CA 92110 4 place Old Town ot
7 Hotel Republic San Diego, Autograph Collection NA hotel Autograph Collection NA
8 THE US GRANT, a Luxury Collection Hotel, San Diego NA hotel Luxury Collection NA
Моя идея - использовать пакет ggmap
, чтобы получить время в пути от Hotel Republic San Diego, Autograph Collection
(place$name[7]
) на первое местов первом ряду route1
, затем получите время в пути от первого места в первом ряду route1
до второго места в первом ряду route1
и так далее, до последнего места в route1
Первый ряд THE US GRANT, a Luxury Collection Hotel, San Diego
(place$name[8]
).Суммируйте время, сохраните в столбце route1$time
.Затем сделайте то же самое для следующих строк.Итак, мой код
library(ggmap)
register_google(key = "my_google_key_here")
route1$time <- 0
for (i in 1:length(route1)) {
for (j in 1:length(route1[i,])) {
if(j == 1){
route1$time[i] <- route1$time[i] + mapdist(from = place$name[7], to = as.character(route1[i,][1]))$seconds
}
if(j == length(route1[i,])){
route1$time[i] <- route1$time[i] + mapdist(from = as.character(route1[i,][j]), to = place$name[8])$seconds
route1$time[i] <- route1$time[i] + mapdist(from = as.character(route1[i,][j - 1]), to = as.character(route1[i,][j]))$seconds
}
for (j in 2:length(route1[i,]-1)) {
route1$time[i] <- route1$time[i] + mapdist(from = as.character(route1[i,][j - 1]), to = as.character(route1[i,][j]))$seconds
}
}
}
Выполнение этого кода дает мне сообщение об ошибке
Error in FUN(left, right) : non-numeric argument to binary operator
, я думаю, оно говорит, что я добавляю символ к числу, но не могу найтиэто.