R을 이용하여 각 문제를 수행하기 위한 코드를 작성하시오.

> score
      m  f
[1,] 10 21
[2,] 40 60
[3,] 60 70
[4,] 20 30
  1. 위와 같은 내용의 매트릭스 score를 생성하시오.
score <- matrix(c(10,40,60,20,21,60,70,30),nrow = 4,ncol = 2)
colnames(score) <- c("m","f")
score
##       m  f
## [1,] 10 21
## [2,] 40 60
## [3,] 60 70
## [4,] 20 30
  1. score의 열 이름을 각각 male, female로 바꾸시오
colnames(score) <- c("male","female")
score
##      male female
## [1,]   10     21
## [2,]   40     60
## [3,]   60     70
## [4,]   20     30
  1. 2행에 있는 모든 값을 출력하시오
score[2,]
##   male female 
##     40     60
  1. female의 모든 값을 출력하시오
score[,"female"]
## [1] 21 60 70 30
  1. female의 모든 값을 출력하면서 matrix 형을 유지하시오.
subset(score,select = "female")
##      female
## [1,]     21
## [2,]     60
## [3,]     70
## [4,]     30
  1. 3행 2열의 위치에 있는 값을 출력하시오.
score[3,2]
## female 
##     70

R에서 제공하는 state.x77 데이터셋을 이용하여 코드를 작성하시오.

  1. state.x77을 변환하여 st에 데이터프레임으로 저장하시오.
st <- as.data.frame(state.x77)
  1. st의 내용을 출력하시오
head(st)
##            Population Income Illiteracy Life Exp Murder HS Grad Frost   Area
## Alabama          3615   3624        2.1    69.05   15.1    41.3    20  50708
## Alaska            365   6315        1.5    69.31   11.3    66.7   152 566432
## Arizona          2212   4530        1.8    70.55    7.8    58.1    15 113417
## Arkansas         2110   3378        1.9    70.66   10.1    39.9    65  51945
## California      21198   5114        1.1    71.71   10.3    62.6    20 156361
## Colorado         2541   4884        0.7    72.06    6.8    63.9   166 103766
  1. st의 열이름을 출력하시오
colnames(st)
## [1] "Population" "Income"     "Illiteracy" "Life Exp"   "Murder"     "HS Grad"    "Frost"     
## [8] "Area"
  1. st의 행이름을 출력하시오.
rownames(st)
##  [1] "Alabama"        "Alaska"         "Arizona"        "Arkansas"       "California"    
##  [6] "Colorado"       "Connecticut"    "Delaware"       "Florida"        "Georgia"       
## [11] "Hawaii"         "Idaho"          "Illinois"       "Indiana"        "Iowa"          
## [16] "Kansas"         "Kentucky"       "Louisiana"      "Maine"          "Maryland"      
## [21] "Massachusetts"  "Michigan"       "Minnesota"      "Mississippi"    "Missouri"      
## [26] "Montana"        "Nebraska"       "Nevada"         "New Hampshire"  "New Jersey"    
## [31] "New Mexico"     "New York"       "North Carolina" "North Dakota"   "Ohio"          
## [36] "Oklahoma"       "Oregon"         "Pennsylvania"   "Rhode Island"   "South Carolina"
## [41] "South Dakota"   "Tennessee"      "Texas"          "Utah"           "Vermont"       
## [46] "Virginia"       "Washington"     "West Virginia"  "Wisconsin"      "Wyoming"
  1. st의 행의 갯수, 열의 갯수, 행과 열의 갯수를 출력하시오
# 행의 갯수를 구하는 R code를 입력하시오
nrow(st)
## [1] 50
# 열의 갯수를 구하는 R code를 입력하시오
ncol(st)
## [1] 8
# 행과 열의 갯수를 구하는 R code를 입력하시오
dim(st)
## [1] 50  8
  1. st의 데이터구조를 출력하시오.
str(st)
## 'data.frame':    50 obs. of  8 variables:
##  $ Population: num  3615 365 2212 2110 21198 ...
##  $ Income    : num  3624 6315 4530 3378 5114 ...
##  $ Illiteracy: num  2.1 1.5 1.8 1.9 1.1 0.7 1.1 0.9 1.3 2 ...
##  $ Life Exp  : num  69 69.3 70.5 70.7 71.7 ...
##  $ Murder    : num  15.1 11.3 7.8 10.1 10.3 6.8 3.1 6.2 10.7 13.9 ...
##  $ HS Grad   : num  41.3 66.7 58.1 39.9 62.6 63.9 56 54.6 52.6 40.6 ...
##  $ Frost     : num  20 152 15 65 20 166 139 103 11 60 ...
##  $ Area      : num  50708 566432 113417 51945 156361 ...
  1. st의 행별 합계와 평균을 출력하시오.
# 행별 합계를 구하는 R code를 입력하시오  
rowSums(st)
##        Alabama         Alaska        Arizona       Arkansas     California       Colorado 
##       58094.55      573412.81      120312.25       57620.56      182838.71      111500.46 
##    Connecticut       Delaware        Florida        Georgia         Hawaii          Idaho 
##       13581.68        7604.76       67328.26       67280.04       12399.60       87872.27 
##       Illinois        Indiana           Iowa         Kansas       Kentucky      Louisiana 
##       72312.94       46121.58       63704.36       88987.58       46964.80       52419.96 
##          Maine       Maryland  Massachusetts       Michigan      Minnesota    Mississippi 
##       35961.49       19544.92       18632.73       70939.43       88178.46       52908.99 
##       Missouri        Montana       Nebraska         Nevada  New Hampshire     New Jersey 
##       78253.59      150970.36       82809.40      115962.23       14426.83       20335.73 
##     New Mexico       New York North Carolina   North Dakota           Ohio       Oklahoma 
##      126414.42       71027.55       58314.61       75308.28       56527.22       75692.52 
##         Oregon   Pennsylvania   Rhode Island South Carolina   South Dakota      Tennessee 
##      103308.93       61528.73        6787.00       36860.66       81102.58       49516.61 
##          Texas           Utah        Vermont       Virginia     Washington  West Virginia 
##      278726.70       87603.30       13948.84       49675.78       75165.12       29705.18 
##      Wisconsin        Wyoming 
##       63800.68      102458.69
# 행의 평균을 구하는 R code를 입력하시오 
rowMeans(st)
##        Alabama         Alaska        Arizona       Arkansas     California       Colorado 
##       7261.819      71676.601      15039.031       7202.570      22854.839      13937.558 
##    Connecticut       Delaware        Florida        Georgia         Hawaii          Idaho 
##       1697.710        950.595       8416.032       8410.005       1549.950      10984.034 
##       Illinois        Indiana           Iowa         Kansas       Kentucky      Louisiana 
##       9039.118       5765.198       7963.045      11123.448       5870.600       6552.495 
##          Maine       Maryland  Massachusetts       Michigan      Minnesota    Mississippi 
##       4495.186       2443.115       2329.091       8867.429      11022.308       6613.624 
##       Missouri        Montana       Nebraska         Nevada  New Hampshire     New Jersey 
##       9781.699      18871.295      10351.175      14495.279       1803.354       2541.966 
##     New Mexico       New York North Carolina   North Dakota           Ohio       Oklahoma 
##      15801.802       8878.444       7289.326       9413.535       7065.903       9461.565 
##         Oregon   Pennsylvania   Rhode Island South Carolina   South Dakota      Tennessee 
##      12913.616       7691.091        848.375       4607.583      10137.823       6189.576 
##          Texas           Utah        Vermont       Virginia     Washington  West Virginia 
##      34840.838      10950.413       1743.605       6209.472       9395.640       3713.148 
##      Wisconsin        Wyoming 
##       7975.085      12807.336
  1. st의 열별 합계와 평균을 출력하시오
# 열별 합계를 출력하시오
colSums(st)
## Population     Income Illiteracy   Life Exp     Murder    HS Grad      Frost       Area 
##  212321.00  221790.00      58.50    3543.93     368.90    2655.40    5223.00 3536794.00
# 열별 평균을 출력하시오
colMeans(st)
## Population     Income Illiteracy   Life Exp     Murder    HS Grad      Frost       Area 
##  4246.4200  4435.8000     1.1700    70.8786     7.3780    53.1080   104.4600 70735.8800
  1. Florida 주의 모든 정보를 출력하시오
st["Florida",]
##         Population Income Illiteracy Life Exp Murder HS Grad Frost  Area
## Florida       8277   4815        1.3    70.66   10.7    52.6    11 54090
  1. 50개 주의 수입(Income) 정보만 출력하시오
st[,"Income"] # 값이 출력
##  [1] 3624 6315 4530 3378 5114 4884 5348 4809 4815 4091 4963 4119 5107 4458 4628 4669 3712 3545 3694
## [20] 5299 4755 4751 4675 3098 4254 4347 4508 5149 4281 5237 3601 4903 3875 5087 4561 3983 4660 4449
## [39] 4558 3635 4167 3821 4188 4022 3907 4701 4864 3617 4468 4566

17 50개 주의 이름과 함께 수입 정보를 출력하시오. 그리고 16번 결과와 비교하시오.

subset(st, select="Income") # 값이 아닌 데이터프레임으로 출력
##                Income
## Alabama          3624
## Alaska           6315
## Arizona          4530
## Arkansas         3378
## California       5114
## Colorado         4884
## Connecticut      5348
## Delaware         4809
## Florida          4815
## Georgia          4091
## Hawaii           4963
## Idaho            4119
## Illinois         5107
## Indiana          4458
## Iowa             4628
## Kansas           4669
## Kentucky         3712
## Louisiana        3545
## Maine            3694
## Maryland         5299
## Massachusetts    4755
## Michigan         4751
## Minnesota        4675
## Mississippi      3098
## Missouri         4254
## Montana          4347
## Nebraska         4508
## Nevada           5149
## New Hampshire    4281
## New Jersey       5237
## New Mexico       3601
## New York         4903
## North Carolina   3875
## North Dakota     5087
## Ohio             4561
## Oklahoma         3983
## Oregon           4660
## Pennsylvania     4449
## Rhode Island     4558
## South Carolina   3635
## South Dakota     4167
## Tennessee        3821
## Texas            4188
## Utah             4022
## Vermont          3907
## Virginia         4701
## Washington       4864
## West Virginia    3617
## Wisconsin        4468
## Wyoming          4566
  1. Texas 주의 면적(Area)를 출력하시오.
st["Texas","Area"]
## [1] 262134
  1. Ohio 주의 인구(Population)와 수입(Income)을 출력하시오
st["Ohio",c("Population","Income")]
##      Population Income
## Ohio      10735   4561
  1. 인구가 5000이상인 주의 데이터만 출력하시오.
# 답변에 해당하는 R code를 subset() 함수 혹은 boolean indexing을 이용하여 출력하시오.
subset(st, Population>=5000)
##                Population Income Illiteracy Life Exp Murder HS Grad Frost   Area
## California          21198   5114        1.1    71.71   10.3    62.6    20 156361
## Florida              8277   4815        1.3    70.66   10.7    52.6    11  54090
## Illinois            11197   5107        0.9    70.14   10.3    52.6   127  55748
## Indiana              5313   4458        0.7    70.88    7.1    52.9   122  36097
## Massachusetts        5814   4755        1.1    71.83    3.3    58.5   103   7826
## Michigan             9111   4751        0.9    70.63   11.1    52.8   125  56817
## New Jersey           7333   5237        1.1    70.93    5.2    52.5   115   7521
## New York            18076   4903        1.4    70.55   10.9    52.7    82  47831
## North Carolina       5441   3875        1.8    69.21   11.1    38.5    80  48798
## Ohio                10735   4561        0.8    70.82    7.4    53.2   124  40975
## Pennsylvania        11860   4449        1.0    70.43    6.1    50.2   126  44966
## Texas               12237   4188        2.2    70.90   12.2    47.4    35 262134
  1. 수입이 4500이상인 주의 인구, 수입, 면적을 출력하시오.
# 답변에 해당하는 R code를 subset() 함수를 이용하여 출력하시오.
# subset() 함수 사용법은 help("subset") 혹은 ?subset을  console에 입력하여 확인하시오.
subset(st, Income>=4500, select = c(Population,Income,Area))
##               Population Income   Area
## Alaska               365   6315 566432
## Arizona             2212   4530 113417
## California         21198   5114 156361
## Colorado            2541   4884 103766
## Connecticut         3100   5348   4862
## Delaware             579   4809   1982
## Florida             8277   4815  54090
## Hawaii               868   4963   6425
## Illinois           11197   5107  55748
## Iowa                2861   4628  55941
## Kansas              2280   4669  81787
## Maryland            4122   5299   9891
## Massachusetts       5814   4755   7826
## Michigan            9111   4751  56817
## Minnesota           3921   4675  79289
## Nebraska            1544   4508  76483
## Nevada               590   5149 109889
## New Jersey          7333   5237   7521
## New York           18076   4903  47831
## North Dakota         637   5087  69273
## Ohio               10735   4561  40975
## Oregon              2284   4660  96184
## Rhode Island         931   4558   1049
## Virginia            4981   4701  39780
## Washington          3559   4864  66570
## Wyoming              376   4566  97203
  1. 수입이 4500이상인 주는 몇개인지 출력하시오.
nrow(subset(st,Income>=4500))
## [1] 26
  1. 전체 면적(Area)가 100,000 이상이고, 결빙일수(Frost)가 120이상인 주의 정보를 출력하시오.
subset(st, Area>=100000&Frost>=120)
##            Population Income Illiteracy Life Exp Murder HS Grad Frost   Area
## Alaska            365   6315        1.5    69.31   11.3    66.7   152 566432
## Colorado         2541   4884        0.7    72.06    6.8    63.9   166 103766
## Montana           746   4347        0.6    70.56    5.0    59.2   155 145587
## Nevada            590   5149        0.5    69.03   11.5    65.2   188 109889
## New Mexico       1144   3601        2.2    70.32    9.7    55.2   120 121412
  1. 인구(Population)가 2000미만이고, 범죄율(Murder)이 12미만인 주의 정보를 출력하시오.
subset(st,Population<2000&Murder<12)
##               Population Income Illiteracy Life Exp Murder HS Grad Frost   Area
## Alaska               365   6315        1.5    69.31   11.3    66.7   152 566432
## Delaware             579   4809        0.9    70.06    6.2    54.6   103   1982
## Hawaii               868   4963        1.9    73.60    6.2    61.9     0   6425
## Idaho                813   4119        0.6    71.87    5.3    59.5   126  82677
## Maine               1058   3694        0.7    70.39    2.7    54.7   161  30920
## Montana              746   4347        0.6    70.56    5.0    59.2   155 145587
## Nebraska            1544   4508        0.6    72.60    2.9    59.3   139  76483
## Nevada               590   5149        0.5    69.03   11.5    65.2   188 109889
## New Hampshire        812   4281        0.7    71.23    3.3    57.6   174   9027
## New Mexico          1144   3601        2.2    70.32    9.7    55.2   120 121412
## North Dakota         637   5087        0.8    72.78    1.4    50.3   186  69273
## Rhode Island         931   4558        1.3    71.90    2.4    46.4   127   1049
## South Dakota         681   4167        0.5    72.08    1.7    53.3   172  75955
## Utah                1203   4022        0.6    72.90    4.5    67.3   137  82096
## Vermont              472   3907        0.6    71.64    5.5    57.1   168   9267
## West Virginia       1799   3617        1.4    69.48    6.7    41.6   100  24070
## Wyoming              376   4566        0.6    70.29    6.9    62.9   173  97203
  1. 문맹률(Illiteracy)이 2.0이상인 주의 평균 수입은 얼마인지 출력하시오.
mean(st[st$Illiteracy>=2.0,"Income"]) # 값을 가지고 평균을 계산하므로 열명 없이 출력된다.
## [1] 3683.143
  1. 문맹률(Illiteracy)이 2.0이상인 주의 평균 수입이 얼마인지 열명과 함께 출력하고, 결과를 25번과 비교하시오.
# 답변에 해당하는 R code와 설명을 #와 함께 입력하시오
colMeans(subset(st,Illiteracy>=2.0,select = Income)) # 데이터 프레임을 가지고 열의 평균을 계산하므로 열명과 함께 출력된다.
##   Income 
## 3683.143
  1. 문맹률(Illiteracy)이 2.0미만인 주와 2.0이상인 주의 평균 수입의 차이를 출력하시오. 평균의 차이는 절대값으로 나타내시오(abs()함수 이용)
abs(mean(st[st$Illiteracy<2.0,"Income"])-mean(st[st$Illiteracy>=2.0,"Income"]))
## [1] 875.1827
  1. 기대수명(Life Exp)이 가장 높은 주는 어디인지 출력하시오.
    which.max() 함수 혹은 subset() 혹은 기타 선호하는 방법들을 사용할 수 있습니다.
row.names(st[which.max(st$`Life Exp`),]) # row.names(st)[which.max(st$`Life Exp`)]
## [1] "Hawaii"
  1. Pennsylvania 주보다 수입(Income)이 높은 주들을 출력하시오.
subset(st, st["Pennsylvania","Income"]<st$Income)
##               Population Income Illiteracy Life Exp Murder HS Grad Frost   Area
## Alaska               365   6315        1.5    69.31   11.3    66.7   152 566432
## Arizona             2212   4530        1.8    70.55    7.8    58.1    15 113417
## California         21198   5114        1.1    71.71   10.3    62.6    20 156361
## Colorado            2541   4884        0.7    72.06    6.8    63.9   166 103766
## Connecticut         3100   5348        1.1    72.48    3.1    56.0   139   4862
## Delaware             579   4809        0.9    70.06    6.2    54.6   103   1982
## Florida             8277   4815        1.3    70.66   10.7    52.6    11  54090
## Hawaii               868   4963        1.9    73.60    6.2    61.9     0   6425
## Illinois           11197   5107        0.9    70.14   10.3    52.6   127  55748
## Indiana             5313   4458        0.7    70.88    7.1    52.9   122  36097
## Iowa                2861   4628        0.5    72.56    2.3    59.0   140  55941
## Kansas              2280   4669        0.6    72.58    4.5    59.9   114  81787
## Maryland            4122   5299        0.9    70.22    8.5    52.3   101   9891
## Massachusetts       5814   4755        1.1    71.83    3.3    58.5   103   7826
## Michigan            9111   4751        0.9    70.63   11.1    52.8   125  56817
## Minnesota           3921   4675        0.6    72.96    2.3    57.6   160  79289
## Nebraska            1544   4508        0.6    72.60    2.9    59.3   139  76483
## Nevada               590   5149        0.5    69.03   11.5    65.2   188 109889
## New Jersey          7333   5237        1.1    70.93    5.2    52.5   115   7521
## New York           18076   4903        1.4    70.55   10.9    52.7    82  47831
## North Dakota         637   5087        0.8    72.78    1.4    50.3   186  69273
## Ohio               10735   4561        0.8    70.82    7.4    53.2   124  40975
## Oregon              2284   4660        0.6    72.13    4.2    60.0    44  96184
## Rhode Island         931   4558        1.3    71.90    2.4    46.4   127   1049
## Virginia            4981   4701        1.4    70.08    9.5    47.8    85  39780
## Washington          3559   4864        0.6    71.72    4.3    63.5    32  66570
## Wisconsin           4589   4468        0.7    72.48    3.0    54.5   149  54464
## Wyoming              376   4566        0.6    70.29    6.9    62.9   173  97203

03 R에서 제공하는 mtcars 데이터셋은 자동차 모델에 대한 제원 정보를 담고 있다. 이 데이터셋에 대한 다음 문제를 해결하기 위한 코드를 작성하시오.

  1. 이 데이터셋의 자료형을 보이시오.
class(mtcars)
## [1] "data.frame"
  1. 이 데이터넷의 행의 갯수와 열의 갯수를 보이시오.
dim(mtcars)
## [1] 32 11
  1. 이 데이터셋 열들의 데이터구조를 보이시오.
str(mtcars)
## 'data.frame':    32 obs. of  11 variables:
##  $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
##  $ cyl : num  6 6 4 6 8 6 8 4 4 6 ...
##  $ disp: num  160 160 108 258 360 ...
##  $ hp  : num  110 110 93 110 175 105 245 62 95 123 ...
##  $ drat: num  3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
##  $ wt  : num  2.62 2.88 2.32 3.21 3.44 ...
##  $ qsec: num  16.5 17 18.6 19.4 17 ...
##  $ vs  : num  0 0 1 1 0 1 0 1 1 1 ...
##  $ am  : num  1 1 1 0 0 0 0 0 0 0 ...
##  $ gear: num  4 4 4 3 3 3 3 4 4 4 ...
##  $ carb: num  4 4 1 1 2 1 4 2 2 4 ...
  1. R 스튜디오의 오른쪽 하단의 help 탭 기능을 이용하여 각 열에 대한 정보를 설명하시오.
    (예를 들어, mpg(mile per gallon) : 자동차의 연비등 )
# R 스튜디오의 오른쪽 하단의 help 탭에 mtcars를 입력하여 나온 정보를 붙여넣는다.  
# [, 1] mpg Miles/(US) gallon
# [, 2] cyl Number of cylinders
# [, 3] disp    Displacement (cu.in.)
# [, 4] hp  Gross horsepower
# [, 5] drat    Rear axle ratio
# [, 6] wt  Weight (1000 lbs)
# [, 7] qsec    1/4 mile time
# [, 8] vs  Engine (0 = V-shaped, 1 = straight)
# [, 9] am  Transmission (0 = automatic, 1 = manual)
# [,10] gear    Number of forward gears
# [,11] carb    Number of carburetors
  1. 연비(mpg)가 가장 좋은 자동차 모델을 보이시오.
row.names(mtcars[which.max(mtcars$mpg),])
## [1] "Toyota Corolla"
  1. gear가 4인 자동차 모델 중 연비가 가장 낮은 모델을 보이시오.
sub.mtcars <- subset(mtcars,mtcars$gear==4)
sub.mtcars[which.min(sub.mtcars$mpg),]
##            mpg cyl  disp  hp drat   wt qsec vs am gear carb
## Merc 280C 17.8   6 167.6 123 3.92 3.44 18.9  1  0    4    4
  1. Honda Civic인 연비(mpg)와 gear수를 보이시오.
mtcars["Honda Civic",c("mpg","gear")]
##              mpg gear
## Honda Civic 30.4    4
  1. Pontiac Firebird 보다 연비가 좋은 자동차 모델을 모두 보이시오.
subset(mtcars, mtcars["Pontiac Firebird","mpg"]<mtcars$mpg)
##                 mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4      21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag  21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710     22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive 21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Merc 240D      24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Merc 230       22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## Fiat 128       32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## Honda Civic    30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## Toyota Corolla 33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## Toyota Corona  21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## Fiat X1-9      27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Porsche 914-2  26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Lotus Europa   30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## Ferrari Dino   19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Volvo 142E     21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
  1. 자동차 모델들의 평균 연비를 보이시오.
mean(mtcars$mpg)
## [1] 20.09062
  1. 자동차 모델들의 평균 연비를 열명과 함께 보이고 38번 결과와 비교하시오.
colMeans(subset(mtcars,select = "mpg")) # 데이터프레임을 가지고 열평균을 출력하므로 열명과 함께 출력된다.
##      mpg 
## 20.09062
  1. gear수의 종류를 보이시오.
unique(mtcars$gear)
## [1] 4 3 5

04 R에서 제공하는 airquality 데이터셋은 일별로 대기의 질을 측정한 자료를 포함하고 있다. 이 데이터넷에 대해서 다음 문제를 해결하기 위한 코드를 작성하시오.

  1. 이 데이터셋의 자료형을 보이시오.
class(airquality)
## [1] "data.frame"
  1. 이 데이터셋의 앞쪽 일부분의 내용만 보이시오.
head(airquality)
##   Ozone Solar.R Wind Temp Month Day
## 1    41     190  7.4   67     5   1
## 2    36     118  8.0   72     5   2
## 3    12     149 12.6   74     5   3
## 4    18     313 11.5   62     5   4
## 5    NA      NA 14.3   56     5   5
## 6    28      NA 14.9   66     5   6
  1. 기온(Temp)의 가장 높은 날은 언제인지 월(Month)과 일(Day)을 보이시오.
airquality[which.max(airquality$Temp),c("Month","Day")]
##     Month Day
## 120     8  28
  1. 6월달에 발생한 가장 강한 바람(Wind)의 세기를 보이시오.
sub.airquality <- subset(airquality, Month==6, select = Wind)
sub.airquality[which.max(sub.airquality$Wind),]
## [1] 20.7
  1. 7월달의 평균 기온(Temp)를 보이시오.
colMeans(subset(airquality, Month==7, select = Temp))
##     Temp 
## 83.90323
  1. 5월의, NA값을 제외한 평균 오존(Ozone) 농도를 보이시오.
colMeans(subset(airquality, Month==5 & !is.na(airquality$Ozone), select = Ozone))
##    Ozone 
## 23.61538
  1. 오존(Ozone) 농도가 100을 넘는 날은 며칠이나 되는지 보이시오.
nrow(airquality[airquality$Ozone>100 & !is.na(airquality$Ozone),])
## [1] 7

05 R에서 제공하는 swiss 데이터넷은 스위스 47개 주의 경제 자료를 포함하고 있다. 이 데이터넷에 대해서 다음 문제를 해결하기 위한 코드를 작성하시오.

  1. 이 데이터셋의 자료형을 보이시오.
class(swiss)
## [1] "data.frame"
  1. 이 데이터셋의 데이터구조를 보이고 각 열의 의미를 help를 이용하여 확인하시오.
str(swiss)
## 'data.frame':    47 obs. of  6 variables:
##  $ Fertility       : num  80.2 83.1 92.5 85.8 76.9 76.1 83.8 92.4 82.4 82.9 ...
##  $ Agriculture     : num  17 45.1 39.7 36.5 43.5 35.3 70.2 67.8 53.3 45.2 ...
##  $ Examination     : int  15 6 5 12 17 9 16 14 12 16 ...
##  $ Education       : int  12 9 5 7 15 7 7 8 7 13 ...
##  $ Catholic        : num  9.96 84.84 93.4 33.77 5.16 ...
##  $ Infant.Mortality: num  22.2 22.2 20.2 20.3 20.6 26.6 23.6 24.9 21 24.4 ...
# help을 통해 각 열의 의미를 확인하시오.
# [,1]  Fertility   Ig, ‘common standardized fertility measure’
# [,2]  Agriculture % of males involved in agriculture as occupation
# [,3]  Examination % draftees receiving highest mark on army examination
# [,4]  Education   % education beyond primary school for draftees.
# [,5]  Catholic    % ‘catholic’ (as opposed to ‘protestant’).
# [,6]  Infant.Mortality    live births who live less than 1 year.
# All variables but ‘Fertility’ give proportions of the population.
  1. 남성의 농업인 비율(Agriculture)이 가장 높은 주를 보이시오
row.names(swiss[which.max(swiss$Agriculture),])
## [1] "Herens"
  1. 남성의 농업인 비율(Agriculture)을 내림차순으로 정렬하여, 주의 이름과 함께 보이시오. 이 때, order()함수를 이용하며, order() 함수의 사용법은 help를 참조하시오.
sub.swiss <- swiss[order(swiss$Agriculture, decreasing = TRUE),]
subset(sub.swiss, select= Agriculture)
##              Agriculture
## Herens              89.7
## Conthey             85.9
## Entremont           84.9
## Sierre              84.6
## Martigwy            78.2
## St Maurice          75.9
## Lavaux              73.0
## Echallens           72.6
## Oron                71.2
## Broye               70.2
## Cossonay            69.3
## Glane               67.8
## Aubonne             67.5
## Monthey             64.9
## Veveyse             64.5
## Paysd'enhaut        63.5
## Sion                63.1
## Aigle               62.0
## Rolle               60.8
## Avenches            60.7
## Morges              59.8
## Payerne             58.1
## Moudon              55.1
## Orbe                54.1
## Gruyere             53.3
## Nyone               50.9
## Yverdon             49.5
## Rive Droite         46.6
## Sarine              45.2
## Delemont            45.1
## Neuveville          43.5
## Franches-Mnt        39.7
## Boudry              38.4
## Val de Ruz          37.6
## Moutier             36.5
## Porrentruy          35.3
## Grandson            34.0
## Rive Gauche         27.7
## Vevey               26.8
## Lausanne            19.4
## ValdeTravers        18.7
## Neuchatel           17.6
## Courtelary          17.0
## Le Locle            16.7
## La Vallee           15.2
## La Chauxdfnd         7.7
## V. De Geneve         1.2
  1. 카톨릭 신자의 비율(Catholic)이 80%이상인 주들의 남성농업인비율(Agriculture)을 주의 이름과 함께 보이시오.
subset(swiss, Catholic>=80, select = Agriculture)
##              Agriculture
## Delemont            45.1
## Franches-Mnt        39.7
## Porrentruy          35.3
## Broye               70.2
## Glane               67.8
## Gruyere             53.3
## Sarine              45.2
## Veveyse             64.5
## Conthey             85.9
## Entremont           84.9
## Herens              89.7
## Martigwy            78.2
## Monthey             64.9
## St Maurice          75.9
## Sierre              84.6
## Sion                63.1
  1. 징집대상자 중 입대시험에서 높은 평가를 받은 사람들의 비율(Examination)이 20%미만이고, 남성농업인 비율(Agriculture)의 50% 미만인 주의 이름과 Examination, Agricultrue컬럼의 값을 보이시오.
subset(swiss, Examination<20 & Agriculture<50, select = c(Examination, Agriculture))
##              Examination Agriculture
## Courtelary            15        17.0
## Delemont               6        45.1
## Franches-Mnt           5        39.7
## Moutier               12        36.5
## Neuveville            17        43.5
## Porrentruy             9        35.3
## Sarine                16        45.2
## Grandson              17        34.0
## Yverdon               15        49.5
## Val de Ruz            15        37.6
## Rive Droite           16        46.6