S&P 500 Historical Prices

This report summarizes S&P 500 historical price data for 2025. The dataset includes daily open, high, low, and close prices.

library(readr)

sp500 <- read_csv("HistoricalPrices.csv")
names(sp500) <- trimws(names(sp500))

# Convert Date from mm/dd/yy format
sp500$Date <- as.Date(sp500$Date, format = "%m/%d/%y")

Preview the Data

head(sp500)
## # A tibble: 6 × 5
##   Date        Open  High   Low Close
##   <date>     <dbl> <dbl> <dbl> <dbl>
## 1 2025-12-31 6899. 6901. 6845. 6846.
## 2 2025-12-30 6900. 6913. 6893. 6896.
## 3 2025-12-29 6904. 6920. 6889. 6906.
## 4 2025-12-26 6936. 6946. 6922. 6930.
## 5 2025-12-24 6905. 6937. 6905. 6932.
## 6 2025-12-23 6872. 6911. 6869. 6910.

Dataset Information

dim(sp500)
## [1] 250   5
names(sp500)
## [1] "Date"  "Open"  "High"  "Low"   "Close"

Summary Statistics

summary(sp500)
##       Date                 Open           High           Low      
##  Min.   :2025-01-02   Min.   :4954   Min.   :5233   Min.   :4835  
##  1st Qu.:2025-04-03   1st Qu.:5903   1st Qu.:5939   1st Qu.:5862  
##  Median :2025-07-05   Median :6239   Median :6252   Median :6201  
##  Mean   :2025-07-03   Mean   :6215   Mean   :6249   Mean   :6179  
##  3rd Qu.:2025-10-01   3rd Qu.:6646   3rd Qu.:6680   3rd Qu.:6610  
##  Max.   :2025-12-31   Max.   :6936   Max.   :6946   Max.   :6922  
##      Close     
##  Min.   :4983  
##  1st Qu.:5912  
##  Median :6229  
##  Mean   :6217  
##  3rd Qu.:6644  
##  Max.   :6932

Closing Price Statistics

mean(sp500$Close, na.rm = TRUE)
## [1] 6216.866
median(sp500$Close, na.rm = TRUE)
## [1] 6228.7
sd(sp500$Close, na.rm = TRUE)
## [1] 462.4062
min(sp500$Close, na.rm = TRUE)
## [1] 4982.77
max(sp500$Close, na.rm = TRUE)
## [1] 6932.05

Closing Price Over Time

plot(sp500$Date, sp500$Close,
     type = "l",
     xlab = "Date",
     ylab = "S&P 500 Closing Price",
     main = "S&P 500 Closing Prices in 2025")