Skip to content

Nijat27/yelp_api_wrapper

 
 

Repository files navigation

YelpViz

YelpViz

The goal of YelpViz is to simplify the visualization process by retrieving business-related information using Yelp's API and providing plotted charts for analysis.

Package Status & Installation

R Package: GitHub Action CI

Coverage: 88.06% - 6 functions total included in the yelpviz_0.1.0.tar.gz package archive file

To explore different cities and businesses, simply:

  • Visit Yelp Fusion API to obtain an API key from Yelp
  • Install the package via GitHub or archive file and import from library
# Install from GitHub
library(remotes)
install_github("kulaphongj/yelp_api_wrapper")

# Install from yelpviz_0.1.0.tar.gz file
# install.packages('yelpviz_0.1.0.tar.gz')

# import library
library(yelpviz)

Usage

Once you have completed the steps above, you may utilize the following 6 functions.

get_all_businesses  

This function queries the Yelp Fusion API to search for businesses based on specified criteria. It constructs a request with the provided parameters and fetches business data from Yelp.

get_all_businesses(api_key, location, business_type, keyword, total = 1000)

  • api_key: A string containing the Yelp API key for authorization
  • location: A string specifying the location to search for businesses
  • business_type: A string specifying the type of business (e.g., restaurants, bars)
  • keyword: A string specifying additional search keywords (e.g., "pizza", "coffee")
  • total: An integer specifying the total number of businesses to attempt to retrieve. The default is 1000
# Example usage
all_businesses <- get_all_businesses("your_api_key", "San Francisco", "food", "pizza", total = 200)
print(all_businesses)

The variable all_businesses will be a dataframe that includes the following columns: "id", "alias", "name", "image_url", "is_closed", "url", "review_count", "categories", "rating", "coordinates", "transactions", "price", "location", "phone", "display_phone", "distance". Use this to view the business details, gather summary statistics and exploratory analysis, and/or create custom visualizations to suit your needs.



search_businesses  

This function queries the Yelp Fusion API to search for businesses based on specified criteria. It constructs a request with the provided parameters and fetches business data from Yelp, returning a list of businesses that match the search criteria.

search_businesses(api_key, location, business_type, keyword, offset = 0, limit = 50)

  • api_key: A string containing the Yelp API key for authorization
  • location: A string specifying the location to search for businesses
  • business_type: A string specifying the type of business (e.g., restaurants, bars)
  • keyword: A string specifying additional search keywords (e.g., "pizza", "coffee")
  • offset: An integer specifying the offset for pagination. The default is 0
  • limit: An integer specifying the maximum number of results to return. The default is 50, and the maximum is 50 as per Yelp API limits
# Example usage
businesses <- search_businesses("your_api_key", "San Francisco", "food", "pizza")
print(businesses)
\# Example output
                       id                                                        alias                                          name
1  A9QDUzIGMcybhLhtPDSN4A    gaspares-pizza-house-and-italian-restaurant-san-francisco    Gaspare's Pizza House & Italian Restaurant
2  mSMZJj2pFvttWLpcDmgrEA                         tonys-pizza-napoletana-san-francisco                       Tony's Pizza Napoletana
3  PTFxtXS47ZVRCdZIrEWvGw                               golden-boy-pizza-san-francisco                              Golden Boy Pizza




create_word_cloud  

This function generates a word cloud visualization based on the names of businesses, weighted by their ratings and number of reviews. The visualization highlights popular and highly rated businesses more prominently.

create_word_cloud(data, save_to_file = FALSE, filename = "wordcloud.html")

  • data: A dataframe containing Yelp business data, specifically the business names, ratings, and review counts
  • save_to_file: Logical indicating whether to save the word cloud to an HTML file. Defaults to FALSE, which means the word cloud will be printed instead of saved
  • filename: The name of the file to save the word cloud HTML if save_to_file is TRUE. Defaults to "wordcloud.html"
# Example usage
create_word_cloud(df_businesses, TRUE, "my_wordcloud.html")

Word Cloud Visualization


create_geo_heatmap  

This function creates a geographic heatmap using the Plotly library in R. It takes a dataframe with latitude, longitude, and other relevant data from the function get_all_businesses(), and produces an interactive map.

create_geo_heatmap(df_loc, factor_plot)

  • df_loc: A dataframe containing location data, including latitude, longitude, and other factors
  • factor_plot: The factor to be represented by the heatmap. The available factors are price_factor, rating, review_count, and weighted_rating_review
# Example usage
heatmap <- create_geo_heatmap(all_businesses, "price_factor")
heatmap

Heatmap Visualization



analyze_cities  

This function retrieves business data from Yelp API for specified cities and category, analyzes the ratings, and generates facetted and interactive plots.

analyze_cities(api_key = NULL, location = NULL, categories = NULL, limit = 20)

  • api_key: A character string representing the Yelp API key. If NULL, the user will be prompted to enter the API key
  • location: A character vector containing the names of cities to analyze. If NULL, the user will be prompted to enter the cities
  • categories: A character string representing the category of businesses to analyze. If NULL, the user will be prompted to enter a category
  • limit: An integer specifying the maximum number of businesses to retrieve per city. Default is 20
# Example usage with cities  
api_key <- '<<<ENTER API KEY HERE>>>'
location <- c('Kelowna', 'Seattle', 'London', 'Tokyo', 'Calgary', 'Vancouver', 'Toronto', 'Portland', 'New York City', 'San Francisco')
result_cities <- analyze_cities(api_key, location, 'golf', 33)
result_cities$plot_facetted

The variable result_cities will return a dataframe containing all the golf businesses in each city, the parameters used, and 2 plots (either facetted for separate comparisons, or interactive for an in-depth analysis).

Golf Business Ratings in Cities



analyze_business_sectors  

This function retrieves business data from Yelp API for a specified city and categories, analyzes the ratings, and generates facetted and interactive plots.

analyze_business_sectors(api_key = NULL, location = NULL, categories = NULL, limit = 20)

  • api_key: A character string representing the Yelp API key. If NULL, the user will be prompted to enter the API key
  • location: A character string representing the name of the city to analyze. If NULL, the user will be prompted to enter a city
  • categories: A character vector containing the names of categories to analyze. If NULL, the user will be prompted to enter the categories
  • limit: An integer specifying the maximum number of businesses to retrieve per category. Default is 20
# Example usage with categories
api_key <- '<<<ENTER API KEY HERE>>>'
categories <- c('food', 'gyms', 'golf', 'shopping', 'hotelstravel', 'nightlife', 'casinos', 'airports', 'roofing', 'plumbing')
result_sectors <- analyze_business_sectors(api_key, 'Kelowna', categories, 33)
result_sectors$plot_interactive

The variable result_sectors will return a dataframe containing all the business sectors in the city of Kelowna, the parameters used, and 2 plots (either facetted for separate comparisons, or interactive for an in-depth analysis).

Business Sector Ratings in Kelowna

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 59.3%
  • JavaScript 26.2%
  • R 13.0%
  • Other 1.5%