JSE Hats

The dimensions of various hats
MATH221
products
haberdashery
Author

MATH 221

Published

April 30, 2024

Data details

There are 26 rows and 6 columns. The data source1 is used to create our data that is stored in our pins table. You can access this pin from a connection to posit.byui.edu using hathawayj/jse_hats.

This data is available to all.

Variable description

  • HatSize: Hat height (in)
  • Circumference: Hat circumference (in)
  • MajorAxis: The length of the longer axis of the ellipse created by the hat band (in)
  • MinorAxis: The length of the shorter axis of the ellipse created by the hat band (in)
  • WhereMade: The unique key of the store in which the hat was made
  • Manufacturer: The unique key of the hat manufacturer

Variable summary

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
HatSize 0 1 7.18 0.28 6.62 7.00 7.12 7.38 7.62 ▂▇▃▇▅
Circumference 0 1 22.00 0.89 20.00 21.00 22.00 23.00 23.00 ▁▆▁▇▇
MajorAxis 0 1 7.85 0.37 7.00 8.00 8.00 8.00 8.00 ▂▁▁▁▇
MinorAxis 0 1 6.30 0.25 5.75 6.06 6.25 6.50 6.75 ▁▅▅▇▁
WhereMade 0 1 0.58 0.50 0.00 0.00 1.00 1.00 1.00 ▆▁▁▁▇
Manufacturer 0 1 1.08 0.84 0.00 0.25 1.00 2.00 3.00 ▅▇▁▅▁
NULL
Explore generating code using R
library(tidyverse)
library(pins)
library(connectapi)

jse_hats <- read_csv('https://github.com/byuistats/data/raw/master/JSE-hats_(Modified)/JSE-hats_(Modified).csv')


# Publish the data to the server with Bro. Hathaway as the owner.
board <- board_connect()
pin_write(board, jse_hats, type = "parquet", access_type = "all")

pin_name <- "jse_hats"
meta <- pin_meta(board, paste0("hathawayj/", pin_name))
client <- connect()
my_app <- content_item(client, meta$local$content_id)
set_vanity_url(my_app, paste0("data/", pin_name))

Access data

This data is available to all.

Direct Download: jse_hats.parquet

R and Python Download:

URL Connections:

For public data, any user can connect and read the data using pins::board_connect_url() in R.

library(pins)
url_data <- "https://posit.byui.edu/data/jse_hats/"
board_url <- board_connect_url(c("dat" = url_data))
dat <- pin_read(board_url, "dat")

Use this custom function in Python to have the data in a Pandas DataFrame.

import pandas as pd
import requests
from io import BytesIO

def read_url_pin(name):
  url = "https://posit.byui.edu/data/" + name + "/" + name + ".parquet"
  response = requests.get(url)
  if response.status_code == 200:
    parquet_content = BytesIO(response.content)
    pandas_dataframe = pd.read_parquet(parquet_content)
    return pandas_dataframe
  else:
    print(f"Failed to retrieve data. Status code: {response.status_code}")
    return None

# Example usage:
pandas_df = read_url_pin("jse_hats")

Authenticated Connection:

Our connect server is https://posit.byui.edu which you assign to your CONNECT_SERVER environment variable. You must create an API key and store it in your environment under CONNECT_API_KEY.

Read more about environment variables and the pins package to understand how these environment variables are stored and accessed in R and Python with pins.

library(pins)
board <- board_connect(auth = "auto")
dat <- pin_read(board, "hathawayj/jse_hats")
import os
from pins import board_rsconnect
from dotenv import load_dotenv
load_dotenv()
API_KEY = os.getenv('CONNECT_API_KEY')
SERVER = os.getenv('CONNECT_SERVER')

board = board_rsconnect(server_url=SERVER, api_key=API_KEY)
dat = board.pin_read("hathawayj/jse_hats")

Footnotes

  1. Unknown↩︎