library(MASS)
pacman::p_load(MASS)
names(nlschools)
## [1] "lang" "IQ" "class" "GS" "SES" "COMB"
dta<- MASS::nlschools
##打開nlschools資料庫
head(dta)
## lang IQ class GS SES COMB
## 1 46 15.0 180 29 23 0
## 2 45 14.5 180 29 10 0
## 3 33 9.5 180 29 15 0
## 4 46 11.0 180 29 23 0
## 5 20 8.0 180 29 10 0
## 6 30 9.5 180 29 10 0
##tidyr語法
library(tidyr)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following object is masked from 'package:MASS':
##
## select
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(tibble)
data(nlschools, package="MASS")
knitr::kable(head(nlschools))
| 46 |
15.0 |
180 |
29 |
23 |
0 |
| 45 |
14.5 |
180 |
29 |
10 |
0 |
| 33 |
9.5 |
180 |
29 |
15 |
0 |
| 46 |
11.0 |
180 |
29 |
23 |
0 |
| 20 |
8.0 |
180 |
29 |
10 |
0 |
| 30 |
9.5 |
180 |
29 |
10 |
0 |
dta <- as_tibble(MASS::nlschools)
library(tidyverse)
## -- Attaching packages ---------------------- tidyverse 1.3.0 --
## √ ggplot2 3.3.0 √ stringr 1.4.0
## √ readr 1.3.1 √ forcats 0.5.0
## √ purrr 0.3.3
## -- Conflicts ------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
## x dplyr::select() masks MASS::select()
##信賴區間指令
dtac <- dta %>% group_by(class) %>%
group_by(lang) %>%
summarise(language_mean = mean(lang, na.rm = TRUE),
sd.lang = sd(lang, na.rm = TRUE),
n.lang = n()) %>%
mutate(se.lang = sd.lang / sqrt(n.lang),
language_lb = language_mean - qt(1 - (0.05 / 2), n.lang - 1) * se.lang,
language_ub = language_mean + qt(1 - (0.05 / 2), n.lang - 1) * se.lang)
## Warning in qt(1 - (0.05/2), n.lang - 1): NaNs produced
## Warning in qt(1 - (0.05/2), n.lang - 1): NaNs produced
dtac
## # A tibble: 47 x 7
## lang language_mean sd.lang n.lang se.lang language_lb language_ub
## <int> <dbl> <dbl> <int> <dbl> <dbl> <dbl>
## 1 9 9 NaN 1 NaN NaN NaN
## 2 11 11 NaN 1 NaN NaN NaN
## 3 14 14 0 2 0 14 14
## 4 15 15 0 4 0 15 15
## 5 16 16 0 3 0 16 16
## 6 17 17 0 7 0 17 17
## 7 18 18 0 7 0 18 18
## 8 19 19 0 6 0 19 19
## 9 20 20 0 13 0 20 20
## 10 21 21 0 18 0 21 21
## # ... with 37 more rows
##04.09參考他人以指令class進行
dtac2 <- dta %>% group_by(class) %>%
dplyr::summarize(IQ_mean=mean(IQ, na.rm=T), language_mean=mean(lang, na.rm=T), language_se=sd(lang, na.rm=T)/sqrt(n()), language_lb=language_mean-1.96*language_se, language_ub=language_mean+1.96*language_se)%>%
##信賴區間和顯示到133的末三行
mutate(classID=paste0(001:133))
options(digits=5)
dtac2 %>% select(classID,IQ_mean,language_mean, language_lb,language_ub) %>%as.data.frame() %>% tail(., 3)
## classID IQ_mean language_mean language_lb language_ub
## 131 131 11.273 38.091 34.733 41.449
## 132 132 10.550 29.300 21.067 37.533
## 133 133 10.643 28.429 23.263 33.594