#install.packages("readxl")
library (tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr 1.2.1 ✔ readr 2.2.0
✔ forcats 1.0.1 ✔ stringr 1.6.0
✔ ggplot2 4.0.3 ✔ tibble 3.3.1
✔ lubridate 1.9.5 ✔ tidyr 1.3.2
✔ purrr 1.2.2
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library (readxl)
df <- read_excel ("Airbnb_DC_25.csv" )
df
# A tibble: 6,257 × 18
id name host_id host_name neighbourhood_group neighbourhood latitude
<dbl> <chr> <dbl> <chr> <lgl> <chr> <dbl>
1 3686 Vita's Hi… 4645 Vita NA Historic Ana… 38.9
2 3943 Historic … 5059 Vasa NA Edgewood, Bl… 38.9
3 4197 Capitol H… 5061 Sandra NA Capitol Hill… 38.9
4 4529 Bertina's… 5803 Bertina NA Eastland Gar… 38.9
5 5589 Cozy apt … 6527 Ami NA Kalorama Hei… 38.9
6 7103 Lovely gu… 17633 Charlotte NA Spring Valle… 38.9
7 11785 Sanctuary… 32015 Teresa NA Cathedral He… 38.9
8 12442 Peaches &… 32015 Teresa NA Cathedral He… 38.9
9 13744 Heart of … 53927 Victoria NA Columbia Hei… 38.9
10 14218 Quiet Com… 32015 Teresa NA Cathedral He… 38.9
# ℹ 6,247 more rows
# ℹ 11 more variables: longitude <dbl>, room_type <chr>, price <dbl>,
# minimum_nights <dbl>, number_of_reviews <dbl>, last_review <dttm>,
# reviews_per_month <dbl>, calculated_host_listings_count <dbl>,
# availability_365 <dbl>, number_of_reviews_ltm <dbl>, license <chr>
room_prices <- df %>%
filter (! is.na (price), price > 0 , price <= 1000 ,
! is.na (room_type)) %>%
group_by (room_type) %>%
summarize (avg_price = mean (price))
ggplot (room_prices,
aes (x = reorder (room_type, - avg_price),
y = avg_price,
fill = room_type)) +
geom_col () +
labs (
title = "Average Airbnb Listing Price by Room Type" ,
x = "Room Type" ,
y = "Average Price per Night (USD)" ,
fill = "Room Type" ,
caption = "Source: Airbnb_DC_25 dataset; listings above $1,000/night excluded."
) +
scale_fill_brewer (palette = "Set2" ) +
theme_minimal ()
This bar graph compares the average nightly prices of different Airbnb room types in Washington, D.C. The graph shows that hotel rooms have the highest average price, at approximately $335 per night, followed by entire homes or apartments at about $177. Private rooms average around $97 per night, while shared rooms have the lowest average price at approximately $69. One key insight is that the average price varies considerably depending on the type of accommodation, with hotel rooms costing much more on average than shared rooms. This information could help travelers compare accommodation options based on their budgets.