#r #filenames
Вопрос:
У меня есть CSV-файл, data
который содержит координаты широты и долготы. Образец:
Lat Lon
13.3 100.3
23.2 90.3
Используя ключ API, я могу извлекать изображения Google Street View, используя эти координаты, которые сохраняются на моем компьютере вместе с googleway
пакетом. Они сохраняются в формате .jpeg.
Приведенный ниже код перебирает координаты data
, получает связанное изображение и сохраняет их, например image_00001.jpeg
, image_00002.jpeg
как, и т. Д.
jpeg('image_d.jpeg')
purrr::map2(data$Lat, data$Lon, function)
dev.off()
Однако вместо сохранения этих файлов, например image_00001.jpeg
, я хочу, чтобы имя файла было координатами, соответствующими изображению. Так, например , если изображение из 13.3, 100.3
пары координат/строки из data
, я хочу сохранить файл как 13.3-100.3.jpeg
.
Кто-нибудь знает, как это сделать?
Комментарии:
1. В вашем
function
вам просто нужно сохранить файл какpaste0(Lat, "-", Lon, ".jpeg")
или что-то подобное2. Я не уверен, что вам нужно было сделать 3 разных поста для того, что по сути является одним и тем же вопросом.
3. @AndrewGustar пожалуйста, не могли бы вы привести пример, изменив исходный код? Поскольку я не уверен, куда поместить это в функцию
Ответ №1:
Как заявил Эндрю Гастар в своем комментарии. Вы можете использовать paste
в своем цикле для создания последовательных имен файлов ваших данных.
data <- data.frame(Lat = c(13.3, 23.2),
Lon = c(100.3, 90.3))
data
Lat Lon
1 13.3 100.3
2 23.2 90.3
sapply(1:nrow(data), function(x) return(paste0(paste(data[x,], collapse = "-"), ".jpeg")))
[1] "13.3-100.3.jpeg" "23.2-90.3.jpeg"
Комментарии:
1. Спасибо! В итоге я воспользовался решением, предложенным Эндрю Гастаром, но, возможно, вы можете чем — то помочь. Я изменил последние 3 строки своего кода
jpeg(paste0(data$Lat, "-", data$Lon, ".jpeg")) purrr::map2(data$Lat, data$Lon, MyFunction) dev.off()
, но он сохраняет только последнее изображение на моем жестком диске, а не все из них. Вы знаете, как это исправить?2.
jpeg()
не векторизован, поэтому вам нужно перебирать каждую строку в вашем векторе.3. Не могли бы вы привести пример, пожалуйста? Например, если я использовал
jpeg('imaged.jpeg')
вместоjpeg(paste0(data$Lat, "-", data$Lon, ".jpeg"))
, то он сохраняет каждое изображение (но не сохраняет их с нужным именем файла).