Danh mục

Bài tập về nhà tuần 3

library(carData)
## Warning: package 'carData' was built under R version 4.2.3
data("Davis")
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.2.3
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(tidyr)
## Warning: package 'tidyr' was built under R version 4.2.3
davis_wide <- Davis %>% 
  pivot_wider(names_from = sex,
              values_from = height,
              values_fn = list)

# In kết quả
print(davis_wide)
## # A tibble: 192 × 5
##    weight repwt repht M         F        
##     <int> <int> <int> <list>    <list>   
##  1     77    77   180 <int [1]> <NULL>   
##  2     58    51   159 <NULL>    <int [1]>
##  3     53    54   158 <NULL>    <int [1]>
##  4     68    70   175 <int [1]> <NULL>   
##  5     59    59   155 <NULL>    <int [2]>
##  6     76    76   165 <int [1]> <NULL>   
##  7     76    77   165 <int [1]> <int [1]>
##  8     69    73   180 <int [1]> <NULL>   
##  9     71    71   175 <int [1]> <NULL>   
## 10     65    64   170 <int [1]> <NULL>   
## # ℹ 182 more rows
davis1 <- na.omit(davis_wide)

Trong ví dụ trên, em đã pivot các giá trị trong cột “weight” của data Davis từ dạng dài sang dạng rộng, với cột “sex” làm tên cột mới và giá trị của các cột được lấy từ cột “weight”.

Bằng cách sử dụng values_fn = list, các giá trị trong cột “height” sẽ được tổng hợp thành một list trong kết quả.

print(davis1)
## # A tibble: 174 × 5
##    weight repwt repht M         F        
##     <int> <int> <int> <list>    <list>   
##  1     77    77   180 <int [1]> <NULL>   
##  2     58    51   159 <NULL>    <int [1]>
##  3     53    54   158 <NULL>    <int [1]>
##  4     68    70   175 <int [1]> <NULL>   
##  5     59    59   155 <NULL>    <int [2]>
##  6     76    76   165 <int [1]> <NULL>   
##  7     76    77   165 <int [1]> <int [1]>
##  8     69    73   180 <int [1]> <NULL>   
##  9     71    71   175 <int [1]> <NULL>   
## 10     65    64   170 <int [1]> <NULL>   
## # ℹ 164 more rows
library(dplyr)
bmi <- mutate(Davis, bmi= weight/(height/100)^2)

Em sử dụng lệnh mutate để thêm một cột mới “bmi” (chỉ số khối cơ thể) bằng cách tính toán trên cột “weight” và “height” theo công thứ . Kết quả là bộ dữ liệu mới có thêm cột “bmi” chứa chỉ số khối cơ thể tính được từ cột “weight” và “height”.

library(dplyr)
newbmi <- na.omit(bmi)
ketqua <- mutate(newbmi,
                 ketqua = case_when(
                   bmi < 18.5 ~ "Gay",
                   bmi >= 18.5 & bmi < 24.9 ~ "Binhthuong",
                   bmi >= 25 & bmi <30 ~ "thuacan",
                   bmi > 30 ~ "beophi"
                 ))
ketqua
##     sex weight height repwt repht       bmi     ketqua
## 1     M     77    182    77   180  23.24598 Binhthuong
## 2     F     58    161    51   159  22.37568 Binhthuong
## 3     F     53    161    54   158  20.44674 Binhthuong
## 4     M     68    177    70   175  21.70513 Binhthuong
## 5     F     59    157    59   155  23.93606 Binhthuong
## 6     M     76    170    76   165  26.29758    thuacan
## 7     M     76    167    77   165  27.25089    thuacan
## 8     M     69    186    73   180  19.94450 Binhthuong
## 9     M     71    178    71   175  22.40879 Binhthuong
## 10    M     65    171    64   170  22.22906 Binhthuong
## 11    M     70    175    75   174  22.85714 Binhthuong
## 12    F    166     57    56   163 510.92644     beophi
## 13    F     51    161    52   158  19.67517 Binhthuong
## 14    F     64    168    64   165  22.67574 Binhthuong
## 15    F     52    163    57   160  19.57168 Binhthuong
## 16    F     65    166    66   165  23.58833 Binhthuong
## 17    M     92    187   101   185  26.30902    thuacan
## 18    F     62    168    62   165  21.96712 Binhthuong
## 19    M     76    197    75   200  19.58309 Binhthuong
## 20    F     61    175    61   171  19.91837 Binhthuong
## 21    M    119    180   124   178  36.72840     beophi
## 22    F     61    170    61   170  21.10727 Binhthuong
## 23    M     65    175    66   173  21.22449 Binhthuong
## 24    M     66    173    70   170  22.05219 Binhthuong
## 25    F     54    171    59   168  18.46722        Gay
## 26    F     50    166    50   165  18.14487        Gay
## 27    F     63    169    61   168  22.05805 Binhthuong
## 28    F     58    166    60   160  21.04805 Binhthuong
## 29    F     39    157    41   153  15.82214        Gay
## 30    M    101    183   100   180  30.15916     beophi
## 31    F     71    166    71   165  25.76571    thuacan
## 32    M     75    178    73   175  23.67125 Binhthuong
## 33    M     79    173    76   173  26.39580    thuacan
## 34    F     52    164    52   161  19.33373 Binhthuong
## 35    F     68    169    63   170  23.80869 Binhthuong
## 36    M     64    176    65   175  20.66116 Binhthuong
## 37    F     56    166    54   165  20.32225 Binhthuong
## 38    M     69    174    69   171  22.79033 Binhthuong
## 39    M     88    178    86   175  27.77427    thuacan
## 40    M     65    187    67   188  18.58789 Binhthuong
## 41    F     54    164    53   160  20.07733 Binhthuong
## 42    M     80    178    80   178  25.24934    thuacan
## 43    F     63    163    59   159  23.71184 Binhthuong
## 44    M     78    183    80   180  23.29123 Binhthuong
## 45    M     85    179    82   175  26.52851    thuacan
## 46    F     54    160    55   158  21.09375 Binhthuong
## 49    F     54    174    56   173  17.83591        Gay
## 50    F     75    162    75   158  28.57796    thuacan
## 51    M     82    182    85   183  24.75546 Binhthuong
## 52    F     56    165    57   163  20.56933 Binhthuong
## 53    M     74    169    73   170  25.90946    thuacan
## 54    M    102    185   107   185  29.80278    thuacan
## 56    M     65    176    64   172  20.98399 Binhthuong
## 58    M     73    183    74   180  21.79820 Binhthuong
## 59    M     75    172    70   169  25.35154    thuacan
## 60    M     57    173    58   170  19.04507 Binhthuong
## 61    M     68    165    69   165  24.97704       <NA>
## 62    M     71    177    71   170  22.66271 Binhthuong
## 63    M     71    180    76   175  21.91358 Binhthuong
## 64    F     78    173    75   169  26.06168    thuacan
## 65    M     97    189    98   185  27.15489    thuacan
## 66    F     60    162    59   160  22.86237 Binhthuong
## 67    F     64    165    63   163  23.50781 Binhthuong
## 68    F     64    164    62   161  23.79536 Binhthuong
## 69    F     52    158    51   155  20.83000 Binhthuong
## 70    M     80    178    76   175  25.24934    thuacan
## 71    F     62    175    61   171  20.24490 Binhthuong
## 72    M     66    173    66   175  22.05219 Binhthuong
## 73    F     55    165    54   163  20.20202 Binhthuong
## 74    F     56    163    57   159  21.07720 Binhthuong
## 75    F     50    166    50   161  18.14487        Gay
## 77    F     50    160    55   150  19.53125 Binhthuong
## 78    F     63    160    64   158  24.60937 Binhthuong
## 79    M     69    182    70   180  20.83082 Binhthuong
## 80    M     69    183    70   183  20.60378 Binhthuong
## 81    F     61    165    60   163  22.40588 Binhthuong
## 82    M     55    168    56   170  19.48696 Binhthuong
## 83    F     53    169    52   175  18.55677 Binhthuong
## 84    F     60    167    55   163  21.51386 Binhthuong
## 85    F     56    170    56   170  19.37716 Binhthuong
## 86    M     59    182    61   183  17.81186        Gay
## 87    M     62    178    66   175  19.56824 Binhthuong
## 88    F     53    165    53   165  19.46740 Binhthuong
## 89    F     57    163    59   160  21.45357 Binhthuong
## 90    F     57    162    56   160  21.71925 Binhthuong
## 91    M     70    173    68   170  23.38869 Binhthuong
## 92    F     56    161    56   161  21.60410 Binhthuong
## 93    M     84    184    86   183  24.81096 Binhthuong
## 94    M     69    180    71   180  21.29630 Binhthuong
## 95    M     88    189    87   185  24.63537 Binhthuong
## 96    F     56    165    57   160  20.56933 Binhthuong
## 97    M    103    185   101   182  30.09496     beophi
## 98    F     50    169    50   165  17.50639        Gay
## 99    F     52    159    52   153  20.56881 Binhthuong
## 101   F     55    164    55   163  20.44914 Binhthuong
## 102   M     63    178    63   175  19.88385 Binhthuong
## 103   F     47    163    47   160  17.68979        Gay
## 104   F     45    163    45   160  16.93703        Gay
## 105   F     62    175    63   173  20.24490 Binhthuong
## 106   F     53    164    51   160  19.70553 Binhthuong
## 107   F     52    152    51   150  22.50693 Binhthuong
## 108   F     57    167    55   164  20.43817 Binhthuong
## 109   F     64    166    64   165  23.22543 Binhthuong
## 110   F     59    166    55   163  21.41094 Binhthuong
## 111   M     84    183    90   183  25.08286    thuacan
## 112   M     79    179    79   171  24.65591 Binhthuong
## 113   F     55    174    57   171  18.16620        Gay
## 114   M     67    179    67   179  20.91071 Binhthuong
## 115   F     76    167    77   165  27.25089    thuacan
## 116   F     62    168    62   163  21.96712 Binhthuong
## 117   M     83    184    83   181  24.51560 Binhthuong
## 118   M     96    184    94   183  28.35539    thuacan
## 119   M     75    169    76   165  26.25958    thuacan
## 120   M     65    178    66   178  20.51509 Binhthuong
## 121   M     78    178    77   175  24.61810 Binhthuong
## 122   M     69    167    73   165  24.74094 Binhthuong
## 123   F     68    178    68   175  21.46194 Binhthuong
## 124   F     55    165    55   163  20.20202 Binhthuong
## 128   F     45    157    45   153  18.25632        Gay
## 129   F     68    171    68   169  23.25502 Binhthuong
## 130   F     44    157    44   155  17.85062        Gay
## 131   F     62    166    61   163  22.49964 Binhthuong
## 132   M     87    185    89   185  25.42001    thuacan
## 133   F     56    160    53   158  21.87500 Binhthuong
## 134   F     50    148    47   148  22.82688 Binhthuong
## 135   M     83    177    84   175  26.49303    thuacan
## 136   F     53    162    53   160  20.19509 Binhthuong
## 137   F     64    172    62   168  21.63332 Binhthuong
## 139   M     90    188    91   185  25.46401    thuacan
## 140   M     85    191    83   188  23.29980 Binhthuong
## 141   M     66    175    68   175  21.55102 Binhthuong
## 142   F     52    163    53   160  19.57168 Binhthuong
## 143   F     53    165    55   163  19.46740 Binhthuong
## 144   F     54    176    55   176  17.43285        Gay
## 145   F     64    171    66   171  21.88708 Binhthuong
## 146   F     55    160    55   155  21.48437 Binhthuong
## 147   F     55    165    55   165  20.20202 Binhthuong
## 148   F     59    157    55   158  23.93606 Binhthuong
## 149   F     70    173    67   170  23.38869 Binhthuong
## 150   M     88    184    86   183  25.99244    thuacan
## 151   F     57    168    58   165  20.19558 Binhthuong
## 152   F     47    162    47   160  17.90886        Gay
## 153   F     47    150    45   152  20.88889 Binhthuong
## 155   F     48    163    44   160  18.06617        Gay
## 156   M     54    169    58   165  18.90690 Binhthuong
## 157   M     69    172    68   174  23.32342 Binhthuong
## 160   F     57    167    56   165  20.43817 Binhthuong
## 161   F     51    163    50   160  19.19530 Binhthuong
## 162   F     54    161    54   160  20.83253 Binhthuong
## 163   F     53    162    52   158  20.19509 Binhthuong
## 164   F     59    172    58   171  19.94321 Binhthuong
## 165   M     56    163    58   161  21.07720 Binhthuong
## 166   F     59    159    59   155  23.33768 Binhthuong
## 167   F     63    170    62   168  21.79931 Binhthuong
## 168   F     66    166    66   165  23.95123 Binhthuong
## 169   M     96    191    95   188  26.31507    thuacan
## 170   F     53    158    50   155  21.23057 Binhthuong
## 171   M     76    169    75   165  26.60971    thuacan
## 173   M     61    170    61   170  21.10727 Binhthuong
## 175   M     62    168    64   168  21.96712 Binhthuong
## 176   M     71    178    68   178  22.40879 Binhthuong
## 178   M     66    170    67   165  22.83737 Binhthuong
## 179   M     81    178    82   175  25.56495    thuacan
## 180   M     68    174    68   173  22.46003 Binhthuong
## 181   M     80    176    78   175  25.82645    thuacan
## 184   F     63    165    59   160  23.14050 Binhthuong
## 185   M     70    173    70   173  23.38869 Binhthuong
## 186   F     56    162    56   160  21.33821 Binhthuong
## 187   F     60    172    55   168  20.28123 Binhthuong
## 188   F     58    169    54   166  20.30741 Binhthuong
## 189   M     76    183    75   180  22.69402 Binhthuong
## 190   F     50    158    49   155  20.02884 Binhthuong
## 191   M     88    185    93   188  25.71220    thuacan
## 192   M     89    173    86   173  29.73704    thuacan
## 193   F     59    164    59   165  21.93635 Binhthuong
## 194   F     51    156    51   158  20.95661 Binhthuong
## 195   F     62    164    61   161  23.05175 Binhthuong
## 196   M     74    175    71   175  24.16327 Binhthuong
## 197   M     83    180    80   180  25.61728    thuacan
## 199   M     90    181    91   178  27.47169    thuacan
## 200   M     79    177    81   178  25.21625    thuacan
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.2.3
ggplot(data = newbmi, aes(x = bmi)) +
  geom_histogram(binwidth = 1, fill = "steelblue", color = "black") + labs(x = "BMI", y = "Frequency", title = "BMI Distribution")

Câu lệnh trên cho chúng ta tạo một bộ dữ liệu mẫu newbmi có một cột BMI. Sau đó, chúng ta sử dụng hàm ggplot() và geom_histogram() để tạo biểu đồ histogram. Tham số binwidth xác định độ rộng của các khoảng bin trong histogram. Bạn có thể điều chỉnh giá trị binwidth để thay đổi độ chi tiết của biểu đồ. Các tham số fill và color được sử dụng để tùy chỉnh màu sắc của histogram. Cuối cùng, chúng ta sử dụng hàm labs() để đặt tên cho trục x, trục y và tiêu đề của biểu đồ.

Khi chạy mã trên, bạn sẽ thấy một biểu đồ histogram hiển thị phân phối của chỉ số BMI, với trục x đại diện cho các giá trị BMI và trục y đại diện cho tần suất.

library(dplyr)
ttestbmi <- t.test(newbmi$bmi ~ newbmi$sex, data = newbmi)
print(ttestbmi)
## 
##  Welch Two Sample t-test
## 
## data:  newbmi$bmi by newbmi$sex
## t = 0.42105, df = 98.973, p-value = 0.6746
## alternative hypothesis: true difference in means between group F and group M is not equal to 0
## 95 percent confidence interval:
##  -7.761724 11.943027
## sample estimates:
## mean in group F mean in group M 
##        26.00885        23.91820
kiemdinh <- cor.test(newbmi$weight, newbmi$height, method = "pearson")
print(kiemdinh)
## 
##  Pearson's product-moment correlation
## 
## data:  newbmi$weight and newbmi$height
## t = 2.0888, df = 179, p-value = 0.03814
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.008593128 0.293511390
## sample estimates:
##       cor 
## 0.1542575
sexbmi <- table(ketqua$ketqua,ketqua$sex)
print(sexbmi)
##             
##               F  M
##   beophi      1  3
##   Binhthuong 80 49
##   Gay        14  1
##   thuacan     4 28

Số lượng quan sát trong phạm vi “beophi”: 1 Số lượng quan sát trong phạm vi “Binhthuong”: 80 Số lượng quan sát trong phạm vi “Gay”: 14 Số lượng quan sát trong phạm vi “thuacan”: 4 Giới tính “Male”:

Số lượng quan sát trong phạm vi “beophi”: 3 Số lượng quan sát trong phạm vi “Binhthuong”: 49 Số lượng quan sát trong phạm vi “Gay”: 1 Số lượng quan sát trong phạm vi “thuacan”: 28 Bảng tần số này cho thấy phân phối của các phạm vi BMI theo giới tính. Ví dụ, có 1 quan sát nữ thuộc phạm vi “beophi”, 3 quan sát nam thuộc phạm vi “beophi”, có 80 quan sát nữ thuộc phạm vi “Binhthuong”, và cứ tiếp tục như vậy.

Bảng tần số này có thể cung cấp thông tin về mối quan hệ giữa BMI và giới tính, cho phép phân tích sự phân bố BMI giữa nam và nữ trong tập dữ liệu.

bmi_df <- as.data.frame.matrix(sexbmi)
ggplot(bmi_df, aes(x = rownames(bmi_df))) +
  geom_col(aes(y = F, fill = "Female"), position = "dodge") +
  geom_col(aes(y = M, fill = "Male"), position = "dodge") +
  labs(x = "BMI", y = "So luong", fill = "Gioi tinh") +
  scale_fill_manual(values = c("Female" = "pink", "Male" = "blue")) +
  theme_minimal()

Khi chạy đoạn mã trên, chúng ta sẽ nhìn thấy biểu đồ cột hiển thị phân phối BMI theo giới tính, với các cột tương ứng với số lượng quan sát cho từng phạm vi BMI và màu sắc biểu thị giới tính tương ứng.

library(dplyr)
bmi_groups <- cut(Davis$weight / ((Davis$height/100)^2),
                  breaks = c(0, 18.5, 25, 30, Inf),
                  labels = c("Dưới chuẩn", "Bình thường", "Thừa cân", "Béo phì"))
table(bmi_groups)
## bmi_groups
##  Dưới chuẩn Bình thường    Thừa cân     Béo phì 
##          18         143          35           4

Trong đoạn mã trên, em sử dụng hàm cut() để phân tổ biến BMI thành các nhóm dựa trên các ngưỡng (breaks) đã cho. Trong ví dụ này, chúng ta phân tổ BMI thành 4 nhóm: Dưới chuẩn, Bình thường, Thừa cân và Béo phì. Kết quả trả về là một factor có chứa các nhãn tương ứng với từng nhóm BMI.

bmi_freq <- table(bmi_groups)
barplot(bmi_freq, xlab = "Nhóm BMI", ylab = "Tần số", main = "Biểu đồ tần số BMI")

correlation <- cor(newbmi$weight, newbmi$bmi)
print(correlation)
## [1] 0.5476132

Kết quả 0.5476132 là một giá trị gần 1 cho thấy mối tương quan dương mạnh giữa biến weight và biến bmi

correlation1 <- cor(newbmi$height, newbmi$bmi)
print(correlation1)
## [1] -0.6621572

Kết quả -0.6621572 là một giá trị gần -1 cho thấy mối tương quan rất yếu giữa biến height và biến bmi

library(ggplot2)
ggplot(data = Davis, aes(x = weight, y = height, color = sex)) +
  geom_point() +
  labs(x = "Weight", y = "Height", color = "sex")

Mối quan hệ giữa cân nặng và chiều cao: ta thấy rằng các điểm dữ liệu phân bố xung quanh một đường thẳng, có thể có một mối quan hệ tuyến tính giữa cân nặng và chiều cao.

Tương tác giữa giới tính và các biến khác: Biểu đồ phân tán đa biến cung cấp cơ hội để xem xét sự tương tác giữa giới tính và các biến khác. Bạn có thể nhìn thấy xem có sự khác biệt về cân nặng, chiều cao và tuổi giữa nam và nữ trong tập dữ liệu Davis.

Tóm lại, biểu đồ phân tán đa biến của tập dữ liệu Davis giúp bạn phân tích mối quan hệ giữa các biến và hiểu rõ hơn về mẫu và sự tương tác trong dữ liệu.

Regenerate response

Bài tập về nhà tuần 2

library(car)
## Warning: package 'car' was built under R version 4.2.3
## 
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
## 
##     recode
data("Salaries")
dat <- Salaries
dat <- na.omit(dat)
names(dat) <- c("hocvi","thuhang","namtotnghiepPhD","namphucvu","gioitinh","luong")
table(Salaries$rank)
## 
##  AsstProf AssocProf      Prof 
##        67        64       266
table(Salaries$yrs.service)
## 
##  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 
## 11 13 15 22 13  8 11 18 18 15 11 14  5  1  8  9  8  6 15 19 10  6  8 16  2  8 
## 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 48 49 51 53 57 60 
##  7 11  9  1  9 10  1  4  2  5  6  4  8  4  5  1  4  3  4  1  1  3  1  1  1  1
table(Salaries$sex)
## 
## Female   Male 
##     39    358
table( dat$hocvi)
## 
##  AsstProf AssocProf      Prof 
##        67        64       266
summary(dat)
##        hocvi     thuhang namtotnghiepPhD   namphucvu       gioitinh  
##  AsstProf : 67   A:181   Min.   : 1.00   Min.   : 0.00   Female: 39  
##  AssocProf: 64   B:216   1st Qu.:12.00   1st Qu.: 7.00   Male  :358  
##  Prof     :266           Median :21.00   Median :16.00               
##                          Mean   :22.31   Mean   :17.61               
##                          3rd Qu.:32.00   3rd Qu.:27.00               
##                          Max.   :56.00   Max.   :60.00               
##      luong       
##  Min.   : 57800  
##  1st Qu.: 91000  
##  Median :107300  
##  Mean   :113706  
##  3rd Qu.:134185  
##  Max.   :231545
mean(dat$luong)
## [1] 113706.5

Lệnh này cho biết mức lương trung bình gần 11400 đô la

sd(dat$luong)
## [1] 30289.04

Độ lệch chuẩn này cho biết mức độ phân tán của giá trị thống kê so với giá trị trung bình

quantile(dat$luong)
##     0%    25%    50%    75%   100% 
##  57800  91000 107300 134185 231545

Hàm Quantile chỉ ra rằng có khoảng: 25% người có thu nhập <= 91000\(, 50% người có thu nhập <=107300\), 75% người có thu nhập <=134185$ và gần 100% người có thu nhập <=231545$

hist(dat$luong)

Biểu đồ kiểm định Histogram cho thấy rằng dữ liệu không tuân theo quy luật phân phối chuẩn

plot(dat$hocvi,dat$luong, pch=16, xlab = " Năm Phục Vụ", ylab = "Tiền Lương")

Lệnh plot vẽ biểu đồ tương quan hai biến năm phục vụ và tiền lương. Qua biểu đồ cho thấy mối tương quan giữa năm phục vụ và tiền tương đối thấp

Bài Tập Về Nhà Tuần 1

Dữ liệu được trích xuất từ lương tháng 09 năm 2008 Trợ lý Giáo sư, Phó Giáo sư và Giáo sư tại một trường cao đẳng ở Hoa Kỳ. Dữ liệu được thu thập như một phần trong nỗ lực không ngừng của ban quản lý trường đại học nhằm theo dõi sự khác biệt về lương giữa nam và nữ giảng viên.Dữ liệu trong gói package gồm các biến: rank (chức vụ), yrs.since.phd(tính từ năm đạt được bằng đến thời điểm hiện tại), yrs.service(năm phục vụ trong ngành), sex(giới tính), salary(lương)

library(car) # Gọi package Car
data("Salaries")
str(Salaries) # Cấu trúc của dữ liệu Salaries
## 'data.frame':    397 obs. of  6 variables:
##  $ rank         : Factor w/ 3 levels "AsstProf","AssocProf",..: 3 3 1 3 3 2 3 3 3 3 ...
##  $ discipline   : Factor w/ 2 levels "A","B": 2 2 2 2 2 2 2 2 2 2 ...
##  $ yrs.since.phd: int  19 20 4 45 40 6 30 45 21 18 ...
##  $ yrs.service  : int  18 16 3 39 41 6 23 45 20 18 ...
##  $ sex          : Factor w/ 2 levels "Female","Male": 2 2 2 2 2 2 2 2 2 1 ...
##  $ salary       : int  139750 173200 79750 115000 141500 97000 175000 147765 119250 129000 ...
a <- Salaries # Gán Salaries vào biến a
names(a) <- c("r","d","ysp","ys","s","sa") # đặt tên các biến có trong data
head(a) # Đọc 6 dòng đầu tiên của a
##           r d ysp ys    s     sa
## 1      Prof B  19 18 Male 139750
## 2      Prof B  20 16 Male 173200
## 3  AsstProf B   4  3 Male  79750
## 4      Prof B  45 39 Male 115000
## 5      Prof B  40 41 Male 141500
## 6 AssocProf B   6  6 Male  97000
Prof <- a[a$r=="Prof",] # Lọc các người có học vị Giáo sư
head(Prof)# Đọc 6 dòng đầu tiên người có học vị Giáo sư
##      r d ysp ys    s     sa
## 1 Prof B  19 18 Male 139750
## 2 Prof B  20 16 Male 173200
## 4 Prof B  45 39 Male 115000
## 5 Prof B  40 41 Male 141500
## 7 Prof B  30 23 Male 175000
## 8 Prof B  45 45 Male 147765
Prof20 <- a[a$r=="Prof"&a$ys>=20,]# câu lệnh này có ý nghia Lọc các vị có học vị Giáo sư và có thời gian phục vụ hơn 20 năm

Prof10 <- a[a$r=="Prof"&a$ys<=10,]
hocvi <- a$r#gắn biến Học vị vào hocvi
luong <- a$sa# gắn biến Lương vào luong
table(cut(luong,3))
## 
## (5.76e+04,1.16e+05] (1.16e+05,1.74e+05] (1.74e+05,2.32e+05] 
##                 237                 145                  15
namphucvu <- a$ys
table(cut(luong,6)) # Chia lương ra 6 khoảng và lập bảng tần số
## 
## (5.76e+04,8.68e+04] (8.68e+04,1.16e+05] (1.16e+05,1.45e+05] (1.45e+05,1.74e+05] 
##                  78                 159                  91                  54 
## (1.74e+05,2.03e+05] (2.03e+05,2.32e+05] 
##                  12                   3
Profexperience <- a[a$r=="Prof"&a$ys==30,] # Câu lệnh này lọc ra những vị có học vị giáo sư và có thời gian phục vụ 30 năm. Kết quả thu được 9 quan sát
head(Profexperience)# Sau đó em dùng lệnh này để đọc 6 quan sát đầu tiên
##        r d ysp ys    s     sa
## 23  Prof A  34 30 Male  93904
## 129 Prof A  32 30 Male 113278
## 186 Prof B  33 30 Male 134000
## 242 Prof A  31 30 Male 122875
## 260 Prof A  32 30 Male  92550
## 266 Prof A  36 30 Male 134800
sex <- a$s # Gắn biến giới tính s vào sex
sexProf <- a[a$r=="Prof"&a$s=="Female",]#Câu lệnh này lọc ra những vị giáo sư là nữ
str(sexProf)# Lệnh này cho biết có 18 quan sát những vị giáo sư là nữ
## 'data.frame':    18 obs. of  6 variables:
##  $ r  : Factor w/ 3 levels "AsstProf","AssocProf",..: 3 3 3 3 3 3 3 3 3 3 ...
##  $ d  : Factor w/ 2 levels "A","B": 2 1 2 2 2 2 2 1 2 1 ...
##  $ ysp: int  18 39 23 25 17 17 20 12 36 29 ...
##  $ ys : int  18 36 19 25 17 18 14 0 26 27 ...
##  $ s  : Factor w/ 2 levels "Female","Male": 1 1 1 1 1 1 1 1 1 1 ...
##  $ sa : int  129000 137000 151768 140096 111512 122960 127512 105000 144651 91000 ...
RichProfMan <- a[a$r=="Prof"&a$sa>100000&a$s=="Male",]# Lệnh này dùng để lọc những vị giáo sư nam có mức lương trên 10000$ 
str(RichProfMan)#Lệnh này cho biết có 213 vị giáo sư nam có mức lương trên 100000$
## 'data.frame':    213 obs. of  6 variables:
##  $ r  : Factor w/ 3 levels "AsstProf","AssocProf",..: 3 3 3 3 3 3 3 3 3 3 ...
##  $ d  : Factor w/ 2 levels "A","B": 2 2 2 2 2 2 2 2 2 2 ...
##  $ ysp: int  19 20 45 40 30 45 21 20 12 19 ...
##  $ ys : int  18 16 39 41 23 45 20 18 3 20 ...
##  $ s  : Factor w/ 2 levels "Female","Male": 2 2 2 2 2 2 2 2 2 2 ...
##  $ sa : int  139750 173200 115000 141500 175000 147765 119250 104800 117150 101000 ...
cor.test(luong,namphucvu,method = "pearson") # Thống kê Pearson's
## 
##  Pearson's product-moment correlation
## 
## data:  luong and namphucvu
## t = 7.0602, df = 395, p-value = 7.529e-12
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.2443740 0.4193506
## sample estimates:
##       cor 
## 0.3347447

Trong đó P-value=7.529e-12 < 5% điều này cho thấy mối tương quan giữa lương và năm phục vụ có ý nghĩa thống kê Với độ tin cậy 95% chúng ta có khoảng tin cậy từ [0.244-0.419] Hệ số tương quan trong trường hợp này là 0.33>0 điều đó thể hiện rằng có mối tương quan thuận giữa lương và năm phục vụ