Подмножество кадров данных в R

#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-адреса.