#r
Вопрос:
Я пытаюсь создать базовую функцию в R, которая возьмет zip-код и выведет округ, но по какой-то причине она не работает. Каждый раз, когда я пробую zip-код, он просто выводит весь исходный кадр данных, а не одно название округа. Любая помощь приветствуется.
library(httr)
zipcodeData <- content(GET('https://raw.githubusercontent.com/scpike/us-state-county-zip/master/geo-data.csv'), type = 'text/csv')
zipCaseGraph<- function(zipcode) {
tbl.Countycases <- subset(zipcodeData, zipcode==sprintf("%s", zipcode))
return(tbl.Countycases$county)
}
Комментарии:
1. Одно из предложений-использовать
read.csv
илиreadr::read_csv
было бы более эффективным.
Ответ №1:
- Тебе это не нужно
sprintf
. - Не используйте то же имя переменной, что и имя столбца.
- Передача фрейма данных в функции является хорошей практикой.
zipCaseGraph<- function(data, zip) {
tbl.Countycases <- subset(data, zipcode == zip)
return(tbl.Countycases$county)
}
zipCaseGraph(zipcodeData, 35004)
#[1] "St. Clair"
zipCaseGraph(zipcodeData, 35005)
#[1] "Jefferson"
Комментарии:
1. Как насчет того, если я хочу использовать функции sprintf() позже в моем коде-это на самом деле не работает для этого URL-адрес : URL-адрес <- функции sprintf(» knowi.com/api/data/… * where County like %s в County И State like %з», countyZip, stateZip)
2.
zipCaseGraph
функция используется только для подмножества данных, верно? Если вы хотите загрузить данные с какого-либо URL-адреса, вы можете использоватьsprintf
его для создания URL-адреса.