ls()
 [1] "anova_bat_brands"           "anova_result"               "Batteries"                  "Batteries_df"              
 [5] "Batteries_temp_mat"         "Boston_df"                  "chick_aov"                  "chickwts"                  
 [9] "cor_value"                  "doubles_hit"                "firstbasestats"             "growth_df"                 
[13] "Hitters_Fixed"              "Hitters_Fixed_df"           "mean_mat_temp_combinations" "model"                     
[17] "one_way_plant_growth"       "p_values"                   "PlantGrowth"                "predicted_speed"           
[21] "reg_medv_lstat"             "sorted_p"                   "tukey_result"               "twoway_breaks_yar"         
[25] "twoway_growth"              "twoway_temp_mat"            "warpbreaks"                
doubles_hit          # prints the whole thing (only good for small datasets)
NA

#EXtract

doubles <- doubles_hit$doubles
## [1] 13.37371
class(doubles)   # should say "numeric" or "integer"
[1] "integer"
length(doubles)  # should be 100, matching your dataset
[1] 100

#Step 2: Mean, median, standard deviation

# Mean
doubles_mean <- mean(doubles)
doubles_mean
# Median
doubles_median <- median(doubles)
doubles_median
# Number of observations
doubles_n <- length(doubles)
doubles_n
# Standard deviation
doubles_sd <- sd(doubles)
doubles_sd

#Step 3: Percentage within one standard deviation

doubles_w1sd <- sum((doubles - doubles_mean)/doubles_sd < 1)/doubles_n
doubles_w1sd
[1] 0.79
## Difference from empirical rule
doubles_w1sd - 0.68
[1] 0.11

#Step 4: Percentage within two standard deviations

doubles_w2sd <- sum((doubles - doubles_mean)/doubles_sd < 2)/doubles_n
doubles_w2sd
[1] 1
## Difference from empirical rule
doubles_w2sd - 0.95
[1] 0.05

#Step 5: Percentage within three standard deviations

doubles_w3sd <- sum((doubles - doubles_mean)/doubles_sd < 3)/doubles_n
doubles_w3sd
[1] 1
## Difference from empirical rule
doubles_w3sd - 0.9973
[1] 0.0027

#Step 6: Histogram

hist(doubles, xlab = "Number of Doubles Hit", col = "green", border = "red",
     xlim = c(0,50), ylim = c(0,30), breaks = 5)

Notes on interpretation:

The distribution is roughly spread from 1 to 49 doubles, with a mean of 23.55 and median of 23.5, so it’s fairly symmetric (mean ≈ median). All 100 observations fall within two standard deviations of the mean (and three), which is why those percentages hit 100%. The one-standard-deviation figure (79%) is a bit higher than the 68% predicted by the empirical rule, which can happen with smaller or slightly non-normal datasets. The histogram shows the data isn’t perfectly bell-shaped — there’s a noticeable cluster of high values (40s) alongside the main body, suggesting a bit of right-side clustering rather than a single smooth peak.

LS0tDQp0aXRsZTogIg0KSW4tY2xhc3MgYWN0aXZpdHkgIzUoSFcpOiBJbnRyb2R1Y3Rpb24gdG8gUiBmb3IgU3BvcnRzIEFuYWx5dGljcywgUGFydCAyIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KDQpgYGB7cn0NCmxzKCkNCmBgYA0KYGBge3J9DQpkb3VibGVzX2hpdCAgICAgICAgICAjIHByaW50cyB0aGUgd2hvbGUgdGhpbmcgKG9ubHkgZ29vZCBmb3Igc21hbGwgZGF0YXNldHMpDQoNCmBgYA0KDQojRVh0cmFjdA0KDQpgYGB7cn0NCmRvdWJsZXMgPC0gZG91Ymxlc19oaXQkZG91Ymxlcw0KIyMgWzFdIDEzLjM3MzcxDQpgYGANCg0KYGBge3J9DQpjbGFzcyhkb3VibGVzKSAgICMgc2hvdWxkIHNheSAibnVtZXJpYyIgb3IgImludGVnZXIiDQpsZW5ndGgoZG91YmxlcykgICMgc2hvdWxkIGJlIDEwMCwgbWF0Y2hpbmcgeW91ciBkYXRhc2V0DQpgYGANCg0KI1N0ZXAgMjogTWVhbiwgbWVkaWFuLCBzdGFuZGFyZCBkZXZpYXRpb24NCg0KYGBge3J9DQojIE1lYW4NCmRvdWJsZXNfbWVhbiA8LSBtZWFuKGRvdWJsZXMpDQpkb3VibGVzX21lYW4NCmBgYA0KYGBge3J9DQojIE1lZGlhbg0KZG91Ymxlc19tZWRpYW4gPC0gbWVkaWFuKGRvdWJsZXMpDQpkb3VibGVzX21lZGlhbg0KDQpgYGANCmBgYHtyfQ0KIyBOdW1iZXIgb2Ygb2JzZXJ2YXRpb25zDQpkb3VibGVzX24gPC0gbGVuZ3RoKGRvdWJsZXMpDQpkb3VibGVzX24NCmBgYA0KDQpgYGB7cn0NCiMgU3RhbmRhcmQgZGV2aWF0aW9uDQpkb3VibGVzX3NkIDwtIHNkKGRvdWJsZXMpDQpkb3VibGVzX3NkDQpgYGANCg0KI1N0ZXAgMzogUGVyY2VudGFnZSB3aXRoaW4gb25lIHN0YW5kYXJkIGRldmlhdGlvbg0KDQpgYGB7cn0NCmRvdWJsZXNfdzFzZCA8LSBzdW0oKGRvdWJsZXMgLSBkb3VibGVzX21lYW4pL2RvdWJsZXNfc2QgPCAxKS9kb3VibGVzX24NCmRvdWJsZXNfdzFzZA0KYGBgDQoNCg0KYGBge3J9DQojIyBEaWZmZXJlbmNlIGZyb20gZW1waXJpY2FsIHJ1bGUNCmRvdWJsZXNfdzFzZCAtIDAuNjgNCmBgYA0KI1N0ZXAgNDogUGVyY2VudGFnZSB3aXRoaW4gdHdvIHN0YW5kYXJkIGRldmlhdGlvbnMNCg0KYGBge3J9DQpkb3VibGVzX3cyc2QgPC0gc3VtKChkb3VibGVzIC0gZG91Ymxlc19tZWFuKS9kb3VibGVzX3NkIDwgMikvZG91Ymxlc19uDQpkb3VibGVzX3cyc2QNCmBgYA0KDQoNCmBgYHtyfQ0KIyMgRGlmZmVyZW5jZSBmcm9tIGVtcGlyaWNhbCBydWxlDQpkb3VibGVzX3cyc2QgLSAwLjk1DQpgYGANCiNTdGVwIDU6IFBlcmNlbnRhZ2Ugd2l0aGluIHRocmVlIHN0YW5kYXJkIGRldmlhdGlvbnMNCg0KYGBge3J9DQpkb3VibGVzX3czc2QgPC0gc3VtKChkb3VibGVzIC0gZG91Ymxlc19tZWFuKS9kb3VibGVzX3NkIDwgMykvZG91Ymxlc19uDQpkb3VibGVzX3czc2QNCg0KIyMgRGlmZmVyZW5jZSBmcm9tIGVtcGlyaWNhbCBydWxlDQpkb3VibGVzX3czc2QgLSAwLjk5NzMNCg0KYGBgDQoNCiNTdGVwIDY6IEhpc3RvZ3JhbQ0KDQpgYGB7cn0NCmhpc3QoZG91YmxlcywgeGxhYiA9ICJOdW1iZXIgb2YgRG91YmxlcyBIaXQiLCBjb2wgPSAiZ3JlZW4iLCBib3JkZXIgPSAicmVkIiwNCiAgICAgeGxpbSA9IGMoMCw1MCksIHlsaW0gPSBjKDAsMzApLCBicmVha3MgPSA1KQ0KYGBgDQogTm90ZXMgb24gaW50ZXJwcmV0YXRpb246DQoNClRoZSBkaXN0cmlidXRpb24gaXMgcm91Z2hseSBzcHJlYWQgZnJvbSAxIHRvIDQ5IGRvdWJsZXMsIHdpdGggYSBtZWFuIG9mIDIzLjU1IGFuZCBtZWRpYW4gb2YgMjMuNSwgc28gaXQncyBmYWlybHkgc3ltbWV0cmljIChtZWFuIOKJiCBtZWRpYW4pLg0KQWxsIDEwMCBvYnNlcnZhdGlvbnMgZmFsbCB3aXRoaW4gdHdvIHN0YW5kYXJkIGRldmlhdGlvbnMgb2YgdGhlIG1lYW4gKGFuZCB0aHJlZSksIHdoaWNoIGlzIHdoeSB0aG9zZSBwZXJjZW50YWdlcyBoaXQgMTAwJS4gVGhlIG9uZS1zdGFuZGFyZC1kZXZpYXRpb24gZmlndXJlICg3OSUpIGlzIGEgYml0IGhpZ2hlciB0aGFuIHRoZSA2OCUgcHJlZGljdGVkIGJ5IHRoZSBlbXBpcmljYWwgcnVsZSwgd2hpY2ggY2FuIGhhcHBlbiB3aXRoIHNtYWxsZXIgb3Igc2xpZ2h0bHkgbm9uLW5vcm1hbCBkYXRhc2V0cy4NClRoZSBoaXN0b2dyYW0gc2hvd3MgdGhlIGRhdGEgaXNuJ3QgcGVyZmVjdGx5IGJlbGwtc2hhcGVkIOKAlCB0aGVyZSdzIGEgbm90aWNlYWJsZSBjbHVzdGVyIG9mIGhpZ2ggdmFsdWVzICg0MHMpIGFsb25nc2lkZSB0aGUgbWFpbiBib2R5LCBzdWdnZXN0aW5nIGEgYml0IG9mIHJpZ2h0LXNpZGUgY2x1c3RlcmluZyByYXRoZXIgdGhhbiBhIHNpbmdsZSBzbW9vdGggcGVhay4=