1 BÀI TẬP TUẦN 3

Package: AER - Dataset: Prestige (Uy tín của Nghề nghiệp Canada)

Mô tả dữ liệu: Khung dữ liệu Uy tín có 102 hàng và 6 cột. Các quan sát là nghề nghiệp.

  • Giải thích các biến:

  • education: Trình độ học vấn trung bình của những người đương nhiệm trong nghề nghiệp, các năm, vào năm 1971.

  • income: Thu nhập trung bình của những người đương nhiệm, đô la, năm 1971.

  • women: Tỷ lệ người đương nhiệm là phụ nữ.

  • prestige: Điểm uy tín của Pineo-Porter cho nghề nghiệp, từ một cuộc khảo sát xã hội được thực hiện vào giữa những năm 1960.

  • census: Điều tra dân số Canada mã nghề nghiệp

  • type: Loại nghề nghiệp. Một yếu tố với các cấp độ (lưu ý: không theo thứ tự): bc, Blue Collar; prof, Professional, Managerial, and Technical; wc, Cổ trắng.

1.1 Tổng quan dữ liệu

Gọi bộ dữ liệu Prestige trong package AER bằng lệnh library và gán nó cho biến Pre để tạo thành một bộ dữ liệu mới. Sau đó, gán data Prestige vào biến có tên là Pre.

library(AER)
## Warning: package 'AER' was built under R version 4.2.3
## Loading required package: car
## Warning: package 'car' was built under R version 4.2.3
## Loading required package: carData
## Warning: package 'carData' was built under R version 4.2.3
## Loading required package: lmtest
## Warning: package 'lmtest' was built under R version 4.2.3
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.2.3
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## Loading required package: sandwich
## Warning: package 'sandwich' was built under R version 4.2.3
## Loading required package: survival
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.2.3
## Warning: package 'ggplot2' was built under R version 4.2.3
## Warning: package 'tibble' was built under R version 4.2.3
## Warning: package 'tidyr' was built under R version 4.2.3
## Warning: package 'readr' was built under R version 4.2.3
## Warning: package 'purrr' was built under R version 4.2.3
## Warning: package 'dplyr' was built under R version 4.2.3
## Warning: package 'stringr' was built under R version 4.2.3
## Warning: package 'forcats' was built under R version 4.2.3
## Warning: package 'lubridate' was built under R version 4.2.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.2     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.2     ✔ tibble    3.2.1
## ✔ lubridate 1.9.2     ✔ tidyr     1.3.0
## ✔ purrr     1.0.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ✖ dplyr::recode() masks car::recode()
## ✖ purrr::some()   masks car::some()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
data("Prestige")
Pre <- Prestige

Sau đó đặt tên lần lượt cho 6 biến trong bộ dữ liệu là “e”,“i”,“w”,“p”,“c”,“t” bằng lệnh names

names(Pre) <- c("e","i","w","p","c","t" )

Dùng lệnh summary để tổng quan dữ liệu

summary(Pre)
##        e                i               w                p        
##  Min.   : 6.380   Min.   :  611   Min.   : 0.000   Min.   :14.80  
##  1st Qu.: 8.445   1st Qu.: 4106   1st Qu.: 3.592   1st Qu.:35.23  
##  Median :10.540   Median : 5930   Median :13.600   Median :43.60  
##  Mean   :10.738   Mean   : 6798   Mean   :28.979   Mean   :46.83  
##  3rd Qu.:12.648   3rd Qu.: 8187   3rd Qu.:52.203   3rd Qu.:59.27  
##  Max.   :15.970   Max.   :25879   Max.   :97.510   Max.   :87.20  
##        c           t     
##  Min.   :1113   bc  :44  
##  1st Qu.:3120   prof:31  
##  Median :5135   wc  :23  
##  Mean   :5402   NA's: 4  
##  3rd Qu.:8312            
##  Max.   :9517

Để xem qua 6 dòng đầu và 6 dòng cuối của dữ liệu bao gồm các thông tin về trình độ học vấn trung bình,thu nhập trung bình,tỷ lệ người đương nhiệm là phụ nữ, điểm uy tín của Pineo-Porter cho nghề nghiệp, điều tra dân số Canada mã nghề nghiệp, loại nghề nghiệp ta sử dụng lệnh head và tail

head(Pre)
##                         e     i     w    p    c    t
## gov.administrators  13.11 12351 11.16 68.8 1113 prof
## general.managers    12.26 25879  4.02 69.1 1130 prof
## accountants         12.77  9271 15.70 63.4 1171 prof
## purchasing.officers 11.42  8865  9.11 56.8 1175 prof
## chemists            14.62  8403 11.68 73.5 2111 prof
## physicists          15.64 11030  5.13 77.6 2113 prof
tail(Pre)
##                     e    i     w    p    c  t
## train.engineers  8.49 8845  0.00 48.9 9131 bc
## bus.drivers      7.58 5562  9.47 35.9 9171 bc
## taxi.drivers     7.93 4224  3.59 25.1 9173 bc
## longshoremen     8.37 4753  0.00 26.1 9313 bc
## typesetters     10.00 6462 13.58 42.2 9511 bc
## bookbinders      8.55 3617 70.87 35.2 9517 bc

Trước khi thực hiện phân tích bộ dữ liệu thì cũng cần xem qua cấu trúc của nó. Ta dùng lệnh str

str(Pre)
## 'data.frame':    102 obs. of  6 variables:
##  $ e: num  13.1 12.3 12.8 11.4 14.6 ...
##  $ i: int  12351 25879 9271 8865 8403 11030 8258 14163 11377 11023 ...
##  $ w: num  11.16 4.02 15.7 9.11 11.68 ...
##  $ p: num  68.8 69.1 63.4 56.8 73.5 77.6 72.6 78.1 73.1 68.8 ...
##  $ c: int  1113 1130 1171 1175 2111 2113 2133 2141 2143 2153 ...
##  $ t: Factor w/ 3 levels "bc","prof","wc": 2 2 2 2 2 2 2 2 2 2 ...

1.2 Lệnh Pivot_longer

Lệnh pivot_longer giúp chuyển đổi bảng dữ liệu rộng thành dài.

  • Chuyển đổi dữ liệu dạng rộng income (thu nhập trung bình của những người đương nhiệm) sang dạng dài
ttd <- Pre %>% pivot_longer(cols = c('i','w'),names_to = "h1",values_to = "value")
  • Biến đổi dữ liệu từ rộng sang dài, giúp phân tích dữ liệu và thực hiện tính toán dễ dàng hơn. Thực hiện lệnh pivot_longer cho các biến liên quan đến thu nhập trung bình của những người đương nhiệm gồm “i”, tỷ lệ người đương nhiệm là phụ nữ “w” để chuyển trình bày nhữug biến này từ hàng sang cột. Lệnh name_to =“h1” được sử dụng để chỉ định tên của cột mới được tạo ra sau khi chuyển đổi. Lệnh values_to = “value” để chỉ định tên của cột chứa giá trị được tạo ra sau khi chuyển đổi.
table(ttd$h1)
## 
##   i   w 
## 102 102

Kết quả thu được là tập dữ liệu ttd với 204 quan sát và 6 biến, dài gấp đôi so với tập dữ liệu gốc ban đầu.

tts <- Pre %>% pivot_longer(cols = starts_with('e'),names_to = "e", values_to = 'al')
tts
## # A tibble: 102 × 7
##        i     w     p     c t     e        al
##    <int> <dbl> <dbl> <int> <fct> <chr> <dbl>
##  1 12351 11.2   68.8  1113 prof  e      13.1
##  2 25879  4.02  69.1  1130 prof  e      12.3
##  3  9271 15.7   63.4  1171 prof  e      12.8
##  4  8865  9.11  56.8  1175 prof  e      11.4
##  5  8403 11.7   73.5  2111 prof  e      14.6
##  6 11030  5.13  77.6  2113 prof  e      15.6
##  7  8258 25.6   72.6  2133 prof  e      15.1
##  8 14163  2.69  78.1  2141 prof  e      15.4
##  9 11377  1.03  73.1  2143 prof  e      14.5
## 10 11023  0.94  68.8  2153 prof  e      14.6
## # ℹ 92 more rows

Trong câu lệnh này, chúng ta tiến hành trình bày lại cột dữ liệu education (trình độ học vấn trung bình của những người đương nhiệm trong nghề nghiệp, các năm, vào năm 1971) thành một cột dữ liệu và đặt tên cho cột dữ liệu mới này là e, các giá trị của e đã được đưa vào một cột mới và cột này được đặt tên là al.

1.3 Lệnh Pivot_wider

  • Chuyển dữ liệu từ dạng dài sang dạng rộng ta sử dụng lệnh pivot_wider, bộ dữ liệu được chọn là Pre, sau đây là Bảng tổng hợp dạng rộng thu nhập trung bình của Canada theo trình độ học vấn:
ei <- Pre %>% pivot_wider(names_from = i, values_from = e)
ei
## # A tibble: 102 × 104
##        w     p     c t     `12351` `25879` `9271` `8865` `8403` `11030` `8258`
##    <dbl> <dbl> <int> <fct>   <dbl>   <dbl>  <dbl>  <dbl>  <dbl>   <dbl>  <dbl>
##  1 11.2   68.8  1113 prof     13.1    NA     NA     NA     NA      NA     NA  
##  2  4.02  69.1  1130 prof     NA      12.3   NA     NA     NA      NA     NA  
##  3 15.7   63.4  1171 prof     NA      NA     12.8   NA     NA      NA     NA  
##  4  9.11  56.8  1175 prof     NA      NA     NA     11.4   NA      NA     NA  
##  5 11.7   73.5  2111 prof     NA      NA     NA     NA     14.6    NA     NA  
##  6  5.13  77.6  2113 prof     NA      NA     NA     NA     NA      15.6   NA  
##  7 25.6   72.6  2133 prof     NA      NA     NA     NA     NA      NA     15.1
##  8  2.69  78.1  2141 prof     NA      NA     NA     NA     NA      NA     NA  
##  9  1.03  73.1  2143 prof     NA      NA     NA     NA     NA      NA     NA  
## 10  0.94  68.8  2153 prof     NA      NA     NA     NA     NA      NA     NA  
## # ℹ 92 more rows
## # ℹ 93 more variables: `14163` <dbl>, `11377` <dbl>, `11023` <dbl>,
## #   `5902` <dbl>, `7059` <dbl>, `8425` <dbl>, `8049` <dbl>, `7405` <dbl>,
## #   `6336` <dbl>, `19263` <dbl>, `6112` <dbl>, `9593` <dbl>, `4686` <dbl>,
## #   `12480` <dbl>, `5648` <dbl>, `8034` <dbl>, `25308` <dbl>, `14558` <dbl>,
## #   `17498` <dbl>, `4614` <dbl>, `3485` <dbl>, `5092` <dbl>, `10432` <dbl>,
## #   `5180` <dbl>, `6197` <dbl>, `7562` <dbl>, `8206` <dbl>, `4036` <dbl>, …
  • Từ dữ liệu ban đầu, tính tổng thu nhập trung bình theo trình độ học vấn và điểm uy tín của Pineo-Porter cho nghề nghiệp. Sau đó, chuyển dữ liệu i từ dạng rộng sang dài theo điểm uy tính Pineo-Porter cho nghề nghiệp như bảng tổng hợp dưới đây
ip <- Pre %>% group_by(e,p) %>% summarise(sgh=sum(i),.groups = 'drop') %>% pivot_wider(names_from = p, values_from = sgh)
ip
## # A tibble: 96 × 93
##        e `28.2` `36.2` `27.3` `33.3` `28.8` `44.1` `38.9` `17.3` `20.8` `23.2`
##    <dbl>  <int>  <int>  <int>  <int>  <int>  <int>  <int>  <int>  <int>  <int>
##  1  6.38   2847     NA     NA     NA     NA     NA     NA     NA     NA     NA
##  2  6.6      NA   5959     NA     NA     NA     NA     NA     NA     NA     NA
##  3  6.67     NA     NA   4696     NA     NA     NA     NA     NA     NA     NA
##  4  6.69     NA     NA     NA   4443     NA     NA     NA     NA     NA     NA
##  5  6.74     NA     NA     NA     NA   3485     NA     NA     NA     NA     NA
##  6  6.84     NA     NA     NA     NA     NA   3643     NA     NA     NA     NA
##  7  6.92     NA     NA     NA     NA     NA     NA   5299     NA     NA     NA
##  8  7.11     NA     NA     NA     NA     NA     NA     NA   3472     NA     NA
##  9  7.33     NA     NA     NA     NA     NA     NA     NA     NA   3000     NA
## 10  7.42     NA     NA     NA     NA     NA     NA     NA     NA     NA   1890
## # ℹ 86 more rows
## # ℹ 82 more variables: `26.5` <int>, `20.1` <int>, `35.9` <int>, `25.2` <int>,
## #   `34.8` <int>, `29.7` <int>, `29.9` <int>, `41.8` <int>, `25.1` <int>,
## #   `38.1` <int>, `51.1` <int>, `42.9` <int>, `26.1` <int>, `48.9` <int>,
## #   `20.2` <int>, `35.2` <int>, `21.5` <int>, `50.8` <int>, `43.7` <int>,
## #   `44.2` <int>, `35.3` <int>, `40.9` <int>, `30.9` <int>, `36.1` <int>,
## #   `34.9` <int>, `25.9` <int>, `43.5` <int>, `14.8` <int>, `41.5` <int>, …

1.4 Lệnh Mutate

  • Từ cột trình độ ban đầu có thể tạo thêm hai cột mới là level, edu bằng lệnh mutate. Trong đó, cột level sẽ lấy 4 giá trị đầu tiền trong cột education và cột edu lấy 4 giá trị cuối.
e4 <- Pre %>% mutate (level = substr(e,1,4),edu= substr(e,5,8))
print(e4)
##                               e     i     w    p    c    t level edu
## gov.administrators        13.11 12351 11.16 68.8 1113 prof  13.1   1
## general.managers          12.26 25879  4.02 69.1 1130 prof  12.2   6
## accountants               12.77  9271 15.70 63.4 1171 prof  12.7   7
## purchasing.officers       11.42  8865  9.11 56.8 1175 prof  11.4   2
## chemists                  14.62  8403 11.68 73.5 2111 prof  14.6   2
## physicists                15.64 11030  5.13 77.6 2113 prof  15.6   4
## biologists                15.09  8258 25.65 72.6 2133 prof  15.0   9
## architects                15.44 14163  2.69 78.1 2141 prof  15.4   4
## civil.engineers           14.52 11377  1.03 73.1 2143 prof  14.5   2
## mining.engineers          14.64 11023  0.94 68.8 2153 prof  14.6   4
## surveyors                 12.39  5902  1.91 62.0 2161 prof  12.3   9
## draughtsmen               12.30  7059  7.83 60.0 2163 prof  12.3    
## computer.programers       13.83  8425 15.33 53.8 2183 prof  13.8   3
## economists                14.44  8049 57.31 62.2 2311 prof  14.4   4
## psychologists             14.36  7405 48.28 74.9 2315 prof  14.3   6
## social.workers            14.21  6336 54.77 55.1 2331 prof  14.2   1
## lawyers                   15.77 19263  5.13 82.3 2343 prof  15.7   7
## librarians                14.15  6112 77.10 58.1 2351 prof  14.1   5
## vocational.counsellors    15.22  9593 34.89 58.3 2391 prof  15.2   2
## ministers                 14.50  4686  4.14 72.8 2511 prof  14.5    
## university.teachers       15.97 12480 19.59 84.6 2711 prof  15.9   7
## primary.school.teachers   13.62  5648 83.78 59.6 2731 prof  13.6   2
## secondary.school.teachers 15.08  8034 46.80 66.1 2733 prof  15.0   8
## physicians                15.96 25308 10.56 87.2 3111 prof  15.9   6
## veterinarians             15.94 14558  4.32 66.7 3115 prof  15.9   4
## osteopaths.chiropractors  14.71 17498  6.91 68.4 3117 prof  14.7   1
## nurses                    12.46  4614 96.12 64.7 3131 prof  12.4   6
## nursing.aides              9.45  3485 76.14 34.9 3135   bc  9.45    
## physio.therapsts          13.62  5092 82.66 72.1 3137 prof  13.6   2
## pharmacists               15.21 10432 24.71 69.3 3151 prof  15.2   1
## medical.technicians       12.79  5180 76.04 67.5 3156   wc  12.7   9
## commercial.artists        11.09  6197 21.03 57.2 3314 prof  11.0   9
## radio.tv.announcers       12.71  7562 11.15 57.6 3337   wc  12.7   1
## athletes                  11.44  8206  8.13 54.1 3373 <NA>  11.4   4
## secretaries               11.59  4036 97.51 46.0 4111   wc  11.5   9
## typists                   11.49  3148 95.97 41.9 4113   wc  11.4   9
## bookkeepers               11.32  4348 68.24 49.4 4131   wc  11.3   2
## tellers.cashiers          10.64  2448 91.76 42.3 4133   wc  10.6   4
## computer.operators        11.36  4330 75.92 47.7 4143   wc  11.3   6
## shipping.clerks            9.17  4761 11.37 30.9 4153   wc  9.17    
## file.clerks               12.09  3016 83.19 32.7 4161   wc  12.0   9
## receptionsts              11.04  2901 92.86 38.7 4171   wc  11.0   4
## mail.carriers              9.22  5511  7.62 36.1 4172   wc  9.22    
## postal.clerks             10.07  3739 52.27 37.2 4173   wc  10.0   7
## telephone.operators       10.51  3161 96.14 38.1 4175   wc  10.5   1
## collectors                11.20  4741 47.06 29.4 4191   wc  11.2    
## claim.adjustors           11.13  5052 56.10 51.1 4192   wc  11.1   3
## travel.clerks             11.43  6259 39.17 35.7 4193   wc  11.4   3
## office.clerks             11.00  4075 63.23 35.6 4197   wc    11    
## sales.supervisors          9.84  7482 17.04 41.5 5130   wc  9.84    
## commercial.travellers     11.13  8780  3.16 40.2 5133   wc  11.1   3
## sales.clerks              10.05  2594 67.82 26.5 5137   wc  10.0   5
## newsboys                   9.62   918  7.00 14.8 5143 <NA>  9.62    
## service.station.attendant  9.93  2370  3.69 23.3 5145   bc  9.93    
## insurance.agents          11.60  8131 13.09 47.3 5171   wc  11.6    
## real.estate.salesmen      11.09  6992 24.44 47.1 5172   wc  11.0   9
## buyers                    11.03  7956 23.88 51.1 5191   wc  11.0   3
## firefighters               9.47  8895  0.00 43.5 6111   bc  9.47    
## policemen                 10.93  8891  1.65 51.6 6112   bc  10.9   3
## cooks                      7.74  3116 52.00 29.7 6121   bc  7.74    
## bartenders                 8.50  3930 15.51 20.2 6123   bc   8.5    
## funeral.directors         10.57  7869  6.01 54.9 6141   bc  10.5   7
## babysitters                9.46   611 96.53 25.9 6147 <NA>  9.46    
## launderers                 7.33  3000 69.31 20.8 6162   bc  7.33    
## janitors                   7.11  3472 33.57 17.3 6191   bc  7.11    
## elevator.operators         7.58  3582 30.08 20.1 6193   bc  7.58    
## farmers                    6.84  3643  3.60 44.1 7112 <NA>  6.84    
## farm.workers               8.60  1656 27.75 21.5 7182   bc   8.6    
## rotary.well.drillers       8.88  6860  0.00 35.3 7711   bc  8.88    
## bakers                     7.54  4199 33.30 38.9 8213   bc  7.54    
## slaughterers.1             7.64  5134 17.26 25.2 8215   bc  7.64    
## slaughterers.2             7.64  5134 17.26 34.8 8215   bc  7.64    
## canners                    7.42  1890 72.24 23.2 8221   bc  7.42    
## textile.weavers            6.69  4443 31.36 33.3 8267   bc  6.69    
## textile.labourers          6.74  3485 39.48 28.8 8278   bc  6.74    
## tool.die.makers           10.09  8043  1.50 42.5 8311   bc  10.0   9
## machinists                 8.81  6686  4.28 44.2 8313   bc  8.81    
## sheet.metal.workers        8.40  6565  2.30 35.9 8333   bc   8.4    
## welders                    7.92  6477  5.17 41.8 8335   bc  7.92    
## auto.workers               8.43  5811 13.62 35.9 8513   bc  8.43    
## aircraft.workers           8.78  6573  5.78 43.7 8515   bc  8.78    
## electronic.workers         8.76  3942 74.54 50.8 8534   bc  8.76    
## radio.tv.repairmen        10.29  5449  2.92 37.2 8537   bc  10.2   9
## sewing.mach.operators      6.38  2847 90.67 28.2 8563   bc  6.38    
## auto.repairmen             8.10  5795  0.81 38.1 8581   bc   8.1    
## aircraft.repairmen        10.10  7716  0.78 50.3 8582   bc  10.1    
## railway.sectionmen         6.67  4696  0.00 27.3 8715   bc  6.67    
## electrical.linemen         9.05  8316  1.34 40.9 8731   bc  9.05    
## electricians               9.93  7147  0.99 50.2 8733   bc  9.93    
## construction.foremen       8.24  8880  0.65 51.1 8780   bc  8.24    
## carpenters                 6.92  5299  0.56 38.9 8781   bc  6.92    
## masons                     6.60  5959  0.52 36.2 8782   bc   6.6    
## house.painters             7.81  4549  2.46 29.9 8785   bc  7.81    
## plumbers                   8.33  6928  0.61 42.9 8791   bc  8.33    
## construction.labourers     7.52  3910  1.09 26.5 8798   bc  7.52    
## pilots                    12.27 14032  0.58 66.1 9111 prof  12.2   7
## train.engineers            8.49  8845  0.00 48.9 9131   bc  8.49    
## bus.drivers                7.58  5562  9.47 35.9 9171   bc  7.58    
## taxi.drivers               7.93  4224  3.59 25.1 9173   bc  7.93    
## longshoremen               8.37  4753  0.00 26.1 9313   bc  8.37    
## typesetters               10.00  6462 13.58 42.2 9511   bc    10    
## bookbinders                8.55  3617 70.87 35.2 9517   bc  8.55

1.5 Ma trận tương quan

m <- cor (Pre[,c("e","i","w")])
print(m)
##            e          i           w
## e 1.00000000  0.5775802  0.06185286
## i 0.57758023  1.0000000 -0.44105927
## w 0.06185286 -0.4410593  1.00000000

2 BÀI TẬP TUẦN 2

2.1 Đặt tên cho các biến

  • Ta sẽ gọi dữ liệu longley

  • Sau đó sẽ gán dataset longley vào lony

-Sử dụng lệnh names để đặt tên cho 7 biến trong bộ dữ liệu lony

data("longley")
l <- longley
names(l) <- c('Gd','G','U','A','P','Y','E')

2.2 Tính toán các thống kê biến

2.2.1 Dùng hàm summary

Dùng hàm summary để tóm tắt thống kê cho toàn bộ dữ liệu. Qua đó, ta có thể đọc được các giá trị về giá trị nhỏ nhất, giá trị lớn nhất, tứ phân vị, trung bình, trung vị cho từng biến có trong bộ data. Nếu muốn quan sát riêng, thì ta dùng $ để gọi biến có trong data đó.

summary(l$G)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   234.3   317.9   381.4   387.7   454.1   554.9
  • Khi thực hiện dòng lệnh summary(l$G) ta thu được giá trị nhỏ nhất của tổng sản lưởng quốc gia là 234.3, giá trị lớn nhất là 554.9, mức trung bình là 387.7, có 25% tống sản lượng quốc nhỏ hơn 317.9, có 50 % tổng sản lượng quốc gia dưới 381.4 và có 75% tổng sản lượng quốc gia nhỏ hơn 454.1 (tính theo đơn vị nghìn đô).
summary(l$E)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   60.17   62.71   65.50   65.32   68.29   70.55
  • Tương tự, dòng lệnh summary(l$E) cho ta biết được số người trung bình có việc làm nhỏ nhất là 60.17, số người trung bình có việc làm lớn nhất là 70.55, mức trung bình là 65.32, có 25% số người trung bình có việc làm dưới 62,71, có 50% số người trung bình có việc làm dưới 65.5 và có 75% số người trung bình có việc làm dưới 68.29
summary(l$U)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   187.0   234.8   314.4   319.3   384.2   480.6
  • Số người thất nghiệp trung bình nhỏ nhất là 187, lớn nhất là 480.6, có 25% số người thất nghiệp trung bình nhỏ hơn 234.8, có 50% số người thất nghiệp trung bình nhỏ hơn 314.4, có 75% số người thất nghiệp trung bình nhỏ hơn 319.3. Số người thất nghiệp trung bình trong khảo sát là 319.3.

2.2.2 Các hàm mean để tính trung bình, var để tính phương sai, quantile

mean(l$G)
## [1] 387.6984
mean(l$E)
## [1] 65.317

Tổng sản lượng quốc gia trung bình là 387.6984. Tổng số người có việc làm trung bình là 65.317

var (l$G)
## [1] 9879.354
var (l$U)
## [1] 8732.234

9879.354 đại diện cho mức độ phân tán của các giá trị về sản lượng quốc gia quanh giá trị trung bình; 8732.234 đại diện cho mức độ phân tán của các giá trị số người thất nghiệp quanh giá trị trung bình.

sd(l$Gd)
## [1] 10.79155

10.79155: Độ lệch chuẩn đo lường mức độ phân tán của các giá trị của biến Gd.

quantile(l$G, 0.65)
##      65% 
## 436.8718
quantile(l$A, 0.46)
##    46% 
## 263.05

Có 65% quốc gia có tổng sản lượng quốc gia dưới mức 436.8718. Có 46% quốc gia có số người trong lực lượng vũ trang dưới 263.05

2.2.3 Dùng hàm sum

Dùng sum để tính toán tổng chỉ số giảm phát giá ngầm định GNP, sản phẩm quốc gia, số người thất nghiệp, số người trong lực lượng vũ trang, dân số ‘phi thể chế hóa’≥ 14 tuổi, số người có việc làm.

sum(l$Gd)
## [1] 1626.9
sum(l$G)
## [1] 6203.175
sum(l$E)
## [1] 1045.072
sum(l$A)
## [1] 4170.7
sum(l$U)
## [1] 5109.3
sum(l$P)
## [1] 1878.784

Qua đó, ta thấy được biến G (tổng sản lượng quốc gia) là cao nhất, thấp nhất là số người có việc làm

2.3 Phân tích sự khác biệt giữa số người có việc làm và số người thất nghiệp theo từng năm

2.4 Hàm aggregate - Toán tử %>%

2.4.1 Hàm aggregate

Hàm aggregate giúp tổng hợp dữ liệu theo nhóm. Các câu lệnh phía trên sẽ trả về kết quả tổng hợp mức chỉ số giảm phát giá ngầm định GNP, sản phẩm quốc gia, số người thất nghiệp, số người trong lực lượng vũ trang, dân số ‘phi thể chế hóa’≥ 14 tuổi, số người có việc làm theo các năm khác nhau

aggregate(l$Y,list(l$Gd),FUN ='mean')
##    Group.1    x
## 1     83.0 1947
## 2     88.2 1949
## 3     88.5 1948
## 4     89.5 1950
## 5     96.2 1951
## 6     98.1 1952
## 7     99.0 1953
## 8    100.0 1954
## 9    101.2 1955
## 10   104.6 1956
## 11   108.4 1957
## 12   110.8 1958
## 13   112.6 1959
## 14   114.2 1960
## 15   115.7 1961
## 16   116.9 1962

Kết quả trên hiển thị cho mức chỉ số giảm phát giá ngầm định GNP theo từng năm. Năm có chỉ số thấp nhất là năm 1947 với 83, năm có chỉ số cao nhất là năm 1962 với 116.9

aggregate(l$Y,list(l$G),FUN ='mean')
##    Group.1    x
## 1  234.289 1947
## 2  258.054 1949
## 3  259.426 1948
## 4  284.599 1950
## 5  328.975 1951
## 6  346.999 1952
## 7  363.112 1954
## 8  365.385 1953
## 9  397.469 1955
## 10 419.180 1956
## 11 442.769 1957
## 12 444.546 1958
## 13 482.704 1959
## 14 502.601 1960
## 15 518.173 1961
## 16 554.894 1962

Kết quả trên hiển thị cho mức tổng sản lượng quốc gia theo từng năm. Năm có tổng sản lượng thấp nhất là năm 1947 với 234.289, năm có tổng sản lượng cao nhất là năm 1962 với 554.894

aggregate(l$Y,list(l$E),FUN ='mean')
##    Group.1    x
## 1   60.171 1949
## 2   60.323 1947
## 3   61.122 1948
## 4   61.187 1950
## 5   63.221 1951
## 6   63.639 1952
## 7   63.761 1954
## 8   64.989 1953
## 9   66.019 1955
## 10  66.513 1958
## 11  67.857 1956
## 12  68.169 1957
## 13  68.655 1959
## 14  69.331 1961
## 15  69.564 1960
## 16  70.551 1962
aggregate(l$Y,list(l$U),FUN ='mean')
##    Group.1    x
## 1    187.0 1953
## 2    193.2 1952
## 3    209.9 1951
## 4    232.5 1948
## 5    235.6 1947
## 6    282.2 1956
## 7    290.4 1955
## 8    293.6 1957
## 9    335.1 1950
## 10   357.8 1954
## 11   368.2 1949
## 12   381.3 1959
## 13   393.1 1960
## 14   400.7 1962
## 15   468.1 1958
## 16   480.6 1961
aggregate(l$Y,list(l$A),FUN ='mean')
##    Group.1    x
## 1    145.6 1948
## 2    159.0 1947
## 3    161.6 1949
## 4    165.0 1950
## 5    251.4 1960
## 6    255.2 1959
## 7    257.2 1961
## 8    263.7 1958
## 9    279.8 1957
## 10   282.7 1962
## 11   285.7 1956
## 12   304.8 1955
## 13   309.9 1951
## 14   335.0 1954
## 15   354.7 1953
## 16   359.4 1952
aggregate(l$Y,list(l$P),FUN ='mean')
##    Group.1    x
## 1  107.608 1947
## 2  108.632 1948
## 3  109.773 1949
## 4  110.929 1950
## 5  112.075 1951
## 6  113.270 1952
## 7  115.094 1953
## 8  116.219 1954
## 9  117.388 1955
## 10 118.734 1956
## 11 120.445 1957
## 12 121.950 1958
## 13 123.366 1959
## 14 125.368 1960
## 15 127.852 1961
## 16 130.081 1962

2.5 Vẽ đồ thị

  • Chúng ta tạo biểu đồ histogram của biến los để xem phân bố dữ liệu, ta dùng lênh hist
hist(l$G)

hist(l$E,breaks =3.5)

hist(l$Gd,counts =2)
## Warning in plot.window(xlim, ylim, "", ...): "counts" is not a graphical
## parameter
## Warning in title(main = main, sub = sub, xlab = xlab, ylab = ylab, ...):
## "counts" is not a graphical parameter
## Warning in axis(1, ...): "counts" is not a graphical parameter
## Warning in axis(2, at = yt, ...): "counts" is not a graphical parameter

3 BÀI TẬP TUẦN 1

Giải thích: Data(longley): Longley’s Economic Regression Data

Description: The Longley dataset contains various US macroeconomic variables that are known to be highly collinear. It has been used to appraise the accuracy of least squares routines.

3.1 Giải thích các biến

  1. GNP.deflator: Chỉ số giảm phát giá ngầm định GNP (1954 = 100).

  2. GNP: Tổng sản phẩm quốc gia.

  3. Unemployed: số người thất nghiệp.

  4. Armed.Forces: số người trong lực lượng vũ trang.

  5. Population: dân số ‘phi thể chế hóa’≥ 14 tuổi

  6. Year: số năm (thời gian)

  7. Employed: số người có việc làm.

3.1.1 Ta chạy dữ liệu cho dataset longley

data("longley")

3.1.2 Gán dữ liệu longley vào l

l <- longley

Sau đó ta thể hiện cấu trúc của dataset (longley) gồm mấy biến và có những biến nào:

3.1.3 Cấu trúc của dataset(longley)

str(longley)
## 'data.frame':    16 obs. of  7 variables:
##  $ GNP.deflator: num  83 88.5 88.2 89.5 96.2 ...
##  $ GNP         : num  234 259 258 285 329 ...
##  $ Unemployed  : num  236 232 368 335 210 ...
##  $ Armed.Forces: num  159 146 162 165 310 ...
##  $ Population  : num  108 109 110 111 112 ...
##  $ Year        : int  1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 ...
##  $ Employed    : num  60.3 61.1 60.2 61.2 63.2 ...

3.1.4 Ta đặt tên cho các biến trong dataset vừa khai báo:

names(l) <- c('Gd','G','U','A','P','Y','E')

3.1.5 Sau đó, lấy 6 dòng đầu tiên của data sets

head(l)
##        Gd       G     U     A       P    Y      E
## 1947 83.0 234.289 235.6 159.0 107.608 1947 60.323
## 1948 88.5 259.426 232.5 145.6 108.632 1948 61.122
## 1949 88.2 258.054 368.2 161.6 109.773 1949 60.171
## 1950 89.5 284.599 335.1 165.0 110.929 1950 61.187
## 1951 96.2 328.975 209.9 309.9 112.075 1951 63.221
## 1952 98.1 346.999 193.2 359.4 113.270 1952 63.639

3.1.6 Gán biến Y trong data(l) vào YEAR

Year <- l$Y
Year
##  [1] 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961
## [16] 1962

3.1.7 Ta lấy dữ liệu của biến year từ năm 1950 đến năm 1960

Year50_60 <- Year[Year>1950&Year<1960]
Year50_60
## [1] 1951 1952 1953 1954 1955 1956 1957 1958 1959

3.1.8 Gán biến E trong data(l) vào EMPLOYED

EMPLOYED <- l$E
EMPLOYED
##  [1] 60.323 61.122 60.171 61.187 63.221 63.639 64.989 63.761 66.019 67.857
## [11] 68.169 66.513 68.655 69.564 69.331 70.551

3.1.9 Ta lấy dữ liệu của biến Year có số năm lớn hơn 1955 và biến Employed mà số người có việc làm trên 62 người

YEAR55EMPLOYED62 <- l[l$Y>1955|l$E>62,]
YEAR55EMPLOYED62
##         Gd       G     U     A       P    Y      E
## 1951  96.2 328.975 209.9 309.9 112.075 1951 63.221
## 1952  98.1 346.999 193.2 359.4 113.270 1952 63.639
## 1953  99.0 365.385 187.0 354.7 115.094 1953 64.989
## 1954 100.0 363.112 357.8 335.0 116.219 1954 63.761
## 1955 101.2 397.469 290.4 304.8 117.388 1955 66.019
## 1956 104.6 419.180 282.2 285.7 118.734 1956 67.857
## 1957 108.4 442.769 293.6 279.8 120.445 1957 68.169
## 1958 110.8 444.546 468.1 263.7 121.950 1958 66.513
## 1959 112.6 482.704 381.3 255.2 123.366 1959 68.655
## 1960 114.2 502.601 393.1 251.4 125.368 1960 69.564
## 1961 115.7 518.173 480.6 257.2 127.852 1961 69.331
## 1962 116.9 554.894 400.7 282.7 130.081 1962 70.551

3.1.10 Chia dữ liệu YEAR thành 4 tố và lập bảng tần số

cut(Year,4)
##  [1] (1947,1951] (1947,1951] (1947,1951] (1947,1951] (1951,1954] (1951,1954]
##  [7] (1951,1954] (1951,1954] (1954,1958] (1954,1958] (1954,1958] (1954,1958]
## [13] (1958,1962] (1958,1962] (1958,1962] (1958,1962]
## Levels: (1947,1951] (1951,1954] (1954,1958] (1958,1962]
table(cut(Year,4))
## 
## (1947,1951] (1951,1954] (1954,1958] (1958,1962] 
##           4           4           4           4

Giải thích: trong bảng tần số trên của biến YEAR thì các nhóm (1947,1951],(1951,1954],(1954,1958],(1958,1962] đều có 4 giá trị chiếm tỷ trọng 25%

3.1.11 Lập bảng tần số của YEAR được chia thành 4 tố với lần lượt các biến GNP.deflator, GNP, Unemployed và Employed

table(cut(Year,4),l$Gd)
##              
##               83 88.2 88.5 89.5 96.2 98.1 99 100 101.2 104.6 108.4 110.8 112.6
##   (1947,1951]  1    1    1    1    0    0  0   0     0     0     0     0     0
##   (1951,1954]  0    0    0    0    1    1  1   1     0     0     0     0     0
##   (1954,1958]  0    0    0    0    0    0  0   0     1     1     1     1     0
##   (1958,1962]  0    0    0    0    0    0  0   0     0     0     0     0     1
##              
##               114.2 115.7 116.9
##   (1947,1951]     0     0     0
##   (1951,1954]     0     0     0
##   (1954,1958]     0     0     0
##   (1958,1962]     1     1     1

Giải thích: bảng tần số của biến Year theo biến GNP.deflator thì nhóm năm từ (1947,1951] có chỉ số giảm phát giá ngầm định GNP từ 83 đến 89.5, nhóm năm từ (1951,1954] có chỉ số giảm phát giá ngầm định GNP từ 96.2 đến 100, nhóm năm từ (1954,1958] có chỉ số giảm phát giá ngầm định GNP từ 101.2 đến 110.8, nhóm năm từ (1958,1962] có chỉ số giảm phát giá ngầm định GNP từ 112.6 đến 116.9

table(cut(Year,4),l$G)
##              
##               234.289 258.054 259.426 284.599 328.975 346.999 363.112 365.385
##   (1947,1951]       1       1       1       1       0       0       0       0
##   (1951,1954]       0       0       0       0       1       1       1       1
##   (1954,1958]       0       0       0       0       0       0       0       0
##   (1958,1962]       0       0       0       0       0       0       0       0
##              
##               397.469 419.18 442.769 444.546 482.704 502.601 518.173 554.894
##   (1947,1951]       0      0       0       0       0       0       0       0
##   (1951,1954]       0      0       0       0       0       0       0       0
##   (1954,1958]       1      1       1       1       0       0       0       0
##   (1958,1962]       0      0       0       0       1       1       1       1

Giải thích: bảng tần số của biến Year theo biến GNP thì nhóm năm từ (1947,1951] có tổng sản phẩm quốc gia từ 234.239 đến 584.599, nhóm năm từ (1951,1954] có tổng sản phẩm quốc gia từ 328.975 đến 365.385, nhóm năm từ (1954,1958] có tổng sản phẩm quốc gia từ 397.469 đến 444.546, nhóm năm từ (1958,1962] có tổng sản phẩm quốc gia từ 482.704 đến 554.894

table(cut(Year,4),l$U)
##              
##               187 193.2 209.9 232.5 235.6 282.2 290.4 293.6 335.1 357.8 368.2
##   (1947,1951]   0     0     0     1     1     0     0     0     1     0     1
##   (1951,1954]   1     1     1     0     0     0     0     0     0     1     0
##   (1954,1958]   0     0     0     0     0     1     1     1     0     0     0
##   (1958,1962]   0     0     0     0     0     0     0     0     0     0     0
##              
##               381.3 393.1 400.7 468.1 480.6
##   (1947,1951]     0     0     0     0     0
##   (1951,1954]     0     0     0     0     0
##   (1954,1958]     0     0     0     1     0
##   (1958,1962]     1     1     1     0     1

Giải thích: bảng tần số của biến Year theo biến Unemployed thì nhóm năm từ (1947,1951] có số người thất nghiệp là 232.5 , 235.6 , 335.1 , 368.2 ; nhóm năm từ (1951,1954] có số người thất nghiệp từ 187 đến 209.9 và 357.8, nhóm năm từ (1954,1958] có số người thất nghiệp từ 282.2 đến 293.6 và 468.1, nhóm năm từ (1958,1962] có số người thất nghiệp từ 381.3 đến 4007.7 và 480.6

table(cut(Year,4),l$E)
##              
##               60.171 60.323 61.122 61.187 63.221 63.639 63.761 64.989 66.019
##   (1947,1951]      1      1      1      1      0      0      0      0      0
##   (1951,1954]      0      0      0      0      1      1      1      1      0
##   (1954,1958]      0      0      0      0      0      0      0      0      1
##   (1958,1962]      0      0      0      0      0      0      0      0      0
##              
##               66.513 67.857 68.169 68.655 69.331 69.564 70.551
##   (1947,1951]      0      0      0      0      0      0      0
##   (1951,1954]      0      0      0      0      0      0      0
##   (1954,1958]      1      1      1      0      0      0      0
##   (1958,1962]      0      0      0      1      1      1      1

Giải thích: bảng tần số của biến Year theo biến Employed thì nhóm năm từ (1947,1951] có số người có việc làm là 60.171 đến 61.187 ; nhóm năm từ (1951,1954] có số người có việc làm từ 187 đến 63.221 và 64.989, nhóm năm từ (1954,1958] có số người có việc làm từ 66.019 đến 68.169, nhóm năm từ (1958,1962] có số người có việc làm từ 68.655 đến 70.551

3.1.12 Ta chia dữ liệu của biến EMPLOYED và biến ARM thành 4 tổ và lập các bảng tần số phụ thuộc của biến EMPLOYED và ARM

3.1.12.1 Chia dữ liệu của biến EMPLOYED thành 4 tổ và lập bảng

cut(EMPLOYED,4)
##  [1] (60.2,62.8] (60.2,62.8] (60.2,62.8] (60.2,62.8] (62.8,65.4] (62.8,65.4]
##  [7] (62.8,65.4] (62.8,65.4] (65.4,68]   (65.4,68]   (68,70.6]   (65.4,68]  
## [13] (68,70.6]   (68,70.6]   (68,70.6]   (68,70.6]  
## Levels: (60.2,62.8] (62.8,65.4] (65.4,68] (68,70.6]
table(cut(EMPLOYED,4))
## 
## (60.2,62.8] (62.8,65.4]   (65.4,68]   (68,70.6] 
##           4           4           3           5

Giải thích: trong bảng tần số của biến Employed thì các nhóm (60.2,62.8],(62.8,65.4] đều có 4 giá trị (chiếm 25%) ;(65.4,68] có 3 giá trị (chiếm 18,75%),(68,70.6] có 5 giá trị (chiếm 31,25%)

3.1.13 Gán biến A của data(l) vào Arm, chia dữ liệu Arm thành 4 tổ và lập bảng

Arm <- l$A
cut(Arm,4)
##  [1] (145,199] (145,199] (145,199] (145,199] (306,360] (306,360] (306,360]
##  [8] (306,360] (252,306] (252,306] (252,306] (252,306] (252,306] (199,252]
## [15] (252,306] (252,306]
## Levels: (145,199] (199,252] (252,306] (306,360]

3.1.14 Ta chia dữ liệu của biến Arm thành 4 tổ bao gồm các tổ là (145,199], (199,252], (252,306], (306,360]. Sau đó ta lập bảng tần số để hiển thị giá trị của biến Arm từ các tổ đã phân

table(cut(Arm,4))
## 
## (145,199] (199,252] (252,306] (306,360] 
##         4         1         7         4

Giải thích: trong bảng tần số của biến Arm thì các nhóm (145,199],(306,360] đều có 4 giá trị (chiếm 25%) ;(199,252] có 1 giá trị (chiếm 6,25%),(252,306] có 7 giá trị (chiếm 43,75%)

3.1.15 Lập bảng tần số của dữ liệu EMPLOYED (số người có việc làm) với lần lượt các biến GNP (tổng sản phẩm quốc gia), Population (dân số)

##Bảng tần số giữ số người có việc làm với tổng sản lượng quốc gia

table(cut(l$E,4),cut(l$G,4))
##              
##               (234,314] (314,395] (395,475] (475,555]
##   (60.2,62.8]         4         0         0         0
##   (62.8,65.4]         0         4         0         0
##   (65.4,68]           0         0         3         0
##   (68,70.6]           0         0         1         4

Nhận xét:

  • Có tổng cộng 4 giá trị mà số người có việc làm nằm trong nhóm (60.2,62.8] chiếm 25%, Có 4 giá trị mà số người có việc làm nằm trong nhóm (62.8,65.4] chiếm 25%, Có 3 giá trị mà số người có việc làm nằm trong nhóm (65.4,68]chiếm 18,75%, Có 5 giá trị mà số người có việc làm nằm trong nhóm (68,70.6] chiếm 31,25%

  • Ở mỗi mức tổng sản lượng quốc gia đều có 4 giá trị nằm ở các mức là (234,314], (314,395], (395,475], (475,555] đều chiếm 25%

##Bảng tần số giữ số người có việc làm với dân số

table(cut(l$E,4),cut(l$P,4))
##              
##               (108,113] (113,119] (119,124] (124,130]
##   (60.2,62.8]         4         0         0         0
##   (62.8,65.4]         1         3         0         0
##   (65.4,68]           0         2         1         0
##   (68,70.6]           0         0         2         3

Nhận xét:

  • Có tổng cộng 4 giá trị mà số người có việc làm nằm trong nhóm (60.2,62.8] chiếm 25%, Có 4 giá trị mà số người có việc làm nằm trong nhóm (62.8,65.4] chiếm 25%, Có 3 giá trị mà số người có việc làm nằm trong nhóm (65.4,68]chiếm 18,75%, Có 5 giá trị mà số người có việc làm nằm trong nhóm (68,70.6] chiếm 25%

  • Có 2 mức có dân số từ (108,113] và từ (113,119] chiếm 5 (mỗi tổ sẽ có tỷ trọng là 31.25%), Có 2 mức có dân số từ (119,124] và từ (124,130] chiếm 3 (mỗi tổ sẽ có tỷ trọng là 18.75%)

##Tính toán tần suất bảng tần số
x=table(cut(l$Y,4),EMPLOYED)
prop.table(x)
##              EMPLOYED
##               60.171 60.323 61.122 61.187 63.221 63.639 63.761 64.989 66.019
##   (1947,1951] 0.0625 0.0625 0.0625 0.0625 0.0000 0.0000 0.0000 0.0000 0.0000
##   (1951,1954] 0.0000 0.0000 0.0000 0.0000 0.0625 0.0625 0.0625 0.0625 0.0000
##   (1954,1958] 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0625
##   (1958,1962] 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
##              EMPLOYED
##               66.513 67.857 68.169 68.655 69.331 69.564 70.551
##   (1947,1951] 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
##   (1951,1954] 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
##   (1954,1958] 0.0625 0.0625 0.0625 0.0000 0.0000 0.0000 0.0000
##   (1958,1962] 0.0000 0.0000 0.0000 0.0625 0.0625 0.0625 0.0625

3.1.16 Lấy ra các dòng có biến YEAR > 1955 hoặc UNEMPLOYED = 290.4

YEAR55UNEMPLOYED290.4 <- l[l$Y>1955|l$U==290.4,]
dim(YEAR55UNEMPLOYED290.4)
## [1] 8 7

Nhận xét: có số năm lớn hơn 1955 chiếm 8, số người thất nghiệp trong những năm lơn hơn 1955 và có số người gần bằng 290 chiếm 10

#Xem dữ liệu dòng 12 biến ARM
l$A[12]
## [1] 263.7

3.1.17 Lấy ngẫu nhiên 2 dòng

l1 <- l[sample(nrow(l),2),]
l1
##         Gd       G     U     A       P    Y      E
## 1953  99.0 365.385 187.0 354.7 115.094 1953 64.989
## 1961 115.7 518.173 480.6 257.2 127.852 1961 69.331

3.1.18 Tính logarit của các biến EMPLOYED, UNEMPLOYED, ARM trong data(l)

l$logE <- log(l$E)
l$logE
##  [1] 4.099713 4.112872 4.097191 4.113935 4.146637 4.153226 4.174218 4.155142
##  [9] 4.189943 4.217403 4.221990 4.197397 4.229094 4.242247 4.238892 4.256336
l$logU <- log(l$U)
l$logU
##  [1] 5.462135 5.448890 5.908626 5.814429 5.346631 5.263726 5.231109 5.879974
##  [9] 5.671259 5.642616 5.682218 6.148682 5.943586 5.974064 6.175035 5.993213
l$logA <- log(l$A)
l$logA
##  [1] 5.068904 4.980863 5.085124 5.105945 5.736250 5.884436 5.871272 5.814131
##  [9] 5.719656 5.654942 5.634075 5.574812 5.542048 5.527045 5.549854 5.644386