Data visualization/데이터시각화(R)

Basic-grammar-in-R

뉴욕킴 2023. 9. 9. 09:53

1. R Studio 열고 R Markdown 클릭

2. 추출 방법: HTML, WORD 사용/ PDF는 한글 추출X

3. 저장 경로 확인

4. 저장 경로 새로 생성(한글 있으면 안됨) -> 워드로 추출

5. R Markdown 함수 확인

rmarkdown-cheatsheet (studylib.net)

 

rmarkdown-cheatsheet

Free essays, homework help, flashcards, research papers, book reports, term papers, history, science, politics

studylib.net

 

기본 문법

1. R에서 다음의 결과가 나오는 명령문을 만들고 결과를 보이시오.

1) [1] "E" "F" "E" "F" "E" "F" "E" "F" "E" "F" 

> rep(c("E","F"),5)
 [1] "E" "F" "E" "F" "E" "F" "E" "F" "E" "F"

 

2) [1] "a" "b" "b" "c" "c" "c" "d" "d" "d" "d" "e" "e" "e" "e" "e"

> rep(letters[1:5],1:5)
 [1] "a" "b" "b" "c" "c" "c" "d" "d" "d" "d" "e" "e"
[13] "e" "e" "e"

 

3) [1] 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33

[18] 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67

[35] 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99

 

> seq(1,100,by=2)
 [1]  1  3  5  7  9 11 13 15 17 19 21 23 25 27 29 31 33
[18] 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67
[35] 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99

 

2. 다음과 같이 UsingR 패키지를 인스톨한 후 내장되어 있는 데이터셋 primes를 이용하여 답 하시오. primes는 1부터 2003까지의 소수들의 집합이다.

 

> library(UsingR)

> data(primes)

 

 

1) primes에는 몇 개의 소수가 있는가?

> length(primes)
[1] 304

2) 1부터 100까지는 몇 개의 소수가 있는가?

> primes<=100
  [1]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
  [9]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
 [17]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
 [25]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
 [33] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
 [41] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
 [49] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
 [57] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
 [65] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
 [73] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
 [81] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
 [89] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
 [97] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[105] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[113] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[121] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[129] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[137] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[145] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[153] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[161] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[169] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[177] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[185] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[193] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[201] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[209] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[217] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[225] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[233] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[241] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[249] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[257] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[265] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[273] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[281] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[289] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[297] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
> primes[primes<=100]
 [1]  2  3  5  7 11 13 17 19 23 29 31 37 41 43 47 53 59
[18] 61 67 71 73 79 83 89 97
> length(primes[primes<=100])
[1] 25
> sum(primes<=100)
[1] 25

 

3) 1부터 1000까지의 소수들의 평균은 얼마인가?

4) 1부터 1000까지의 소수들의 표준편차는 얼마인가?

> mean(primes[primes<=1000])
[1] 453.1369
> sd(primes[primes<=1000])
[1] 298.1924

 

 

5) 1000부터 2003 사이의 소수만을 포함하는 벡터 prime2를 만드시오

primes[primes >=1000 & primes <=2003]
  [1] 1009 1013 1019 1021 1031 1033 1039 1049 1051 1061
 [11] 1063 1069 1087 1091 1093 1097 1103 1109 1117 1123
 [21] 1129 1151 1153 1163 1171 1181 1187 1193 1201 1213
 [31] 1217 1223 1229 1231 1237 1249 1259 1277 1279 1283
 [41] 1289 1291 1297 1301 1303 1307 1319 1321 1327 1361
 [51] 1367 1373 1381 1399 1409 1423 1427 1429 1433 1439
 [61] 1447 1451 1453 1459 1471 1481 1483 1487 1489 1493
 [71] 1499 1511 1523 1531 1543 1549 1553 1559 1567 1571
 [81] 1579 1583 1597 1601 1607 1609 1613 1619 1621 1627
 [91] 1637 1657 1663 1667 1669 1693 1697 1699 1709 1721
[101] 1723 1733 1741 1747 1753 1759 1777 1783 1787 1789
[111] 1801 1811 1823 1831 1847 1861 1867 1871 1873 1877
[121] 1879 1889 1901 1907 1913 1931 1933 1949 1951 1973
[131] 1979 1987 1993 1997 1999 2003
> primes2=primes[primes >=1000 & primes <=2003]
> primes2
  [1] 1009 1013 1019 1021 1031 1033 1039 1049 1051 1061
 [11] 1063 1069 1087 1091 1093 1097 1103 1109 1117 1123
 [21] 1129 1151 1153 1163 1171 1181 1187 1193 1201 1213
 [31] 1217 1223 1229 1231 1237 1249 1259 1277 1279 1283
 [41] 1289 1291 1297 1301 1303 1307 1319 1321 1327 1361
 [51] 1367 1373 1381 1399 1409 1423 1427 1429 1433 1439
 [61] 1447 1451 1453 1459 1471 1481 1483 1487 1489 1493
 [71] 1499 1511 1523 1531 1543 1549 1553 1559 1567 1571
 [81] 1579 1583 1597 1601 1607 1609 1613 1619 1621 1627
 [91] 1637 1657 1663 1667 1669 1693 1697 1699 1709 1721
[101] 1723 1733 1741 1747 1753 1759 1777 1783 1787 1789
[111] 1801 1811 1823 1831 1847 1861 1867 1871 1873 1877
[121] 1879 1889 1901 1907 1913 1931 1933 1949 1951 1973
[131] 1979 1987 1993 1997 1999 2003

 

3. 다음의 데이터를 이용하여 1)~6)까지의 명령을 수행하시오.

 

-2 5 13 -9 -15 7 18 -34 15 -16

 

1) 데이터 벡터 Y를 만드시오.

2) 각 데이터의 절대값으로 구성된 벡터 Y2를 만드시오.

3) 각 데이터의 제곱의 합을 구하시오.

4) 각 데이터에서 10를 뺀 값들을 구하시오.

5) 벡터 Y2의 최소값과 최댓값을 구하시오.

6) 벡터 Y에서 0보다 큰 값들만으로 구성된 벡터 YLARGE를 만들고 결과를 보이시오

 

 

ggplot2 – part 1 확인학습 1. palmerpenguins library에는 에는 Antartica의 Palmer station근처에 서식하는 펭귄에 대한 자 료인 penguins가 내장되어 있다.

 

  • 라이브러리 설치 후 불러오기 
> library(palmerpenguins)
Warning message:
패키지 ‘palmerpenguins’는 R 버전 4.3.1에서 작성되었습니다
> ls(pos=1)
 [1] "a"           "A"           "abs.r"      
 [4] "abs.r0"      "abs.r1"      "b"          
 [7] "B"           "b2"          "b5"         
[10] "bc"          "beta"        "C"          
[13] "cov.beta"    "d"           "Dx"         
[16] "esti.95"     "EY"          "fi05"       
[19] "fi05.lm"     "fit"         "fitted"     
[22] "full"        "H0.1"        "H0.2"       
[25] "H0.3"        "H0.4"        "H1.1"       
[28] "H1.2"        "H1.3"        "H1.4"       
[31] "lgd"         "lm.ta01"     "mse"        
[34] "n"           "new"         "ord"        
[37] "p1"          "p2"          "p22"        
[40] "pred.95"     "primes"      "primes2"    
[43] "resd"        "se.X.h"      "se.X.h.pred"
[46] "smaller"     "sqrt.mse"    "stan.reg"   
[49] "state"       "ta01"        "ta08"       
[52] "ta08.lm"     "ta08.lm2"    "ta305"      
[55] "ta701"       "ta701.s"     "V"          
[58] "x"           "X"           "X.h"        
[61] "x1"          "X123"        "x2"         
[64] "y"           "Y.pred"     
> ls(pos=2)
[1] "path_to_file" "penguins"     "penguins_raw"
> ls(pos=3)
  [1] "age.universe"           
  [2] "aid"                    
  [3] "alaska.pipeline"        
  [4] "alltime.movies"         
  [5] "answers"                
  [6] "aosat"                  
  [7] "arctic.oscillations"    
  [8] "babies"                 
  [9] "babyboom"               
 [10] "batting"                
 [11] "baycheck"               
 [12] "best.times"             
 [13] "blood"                  
 [14] "breakdown"              
 [15] "bright.stars"           
 [16] "brightness"             
 [17] "bumpers"                
 [18] "BushApproval"           
 [19] "bycatch"                
 [20] "cabinet"                
 [21] "camp"                   
 [22] "cancer"                 
 [23] "carbon"                 
 [24] "carsafety"              
 [25] "central.park"           
 [26] "central.park.cloud"     
 [27] "ceo2013"                
 [28] "cfb"                    
 [29] "chicken"                
 [30] "chips"                  
 [31] "co2emiss"               
 [32] "coins"                  
 [33] "coldvermont"            
 [34] "corn"                   
 [35] "crime"                  
 [36] "deflection"             
 [37] "DensityPlot"            
 [38] "diamond"                
 [39] "divorce"                
 [40] "DOTplot"                
 [41] "dottodot"               
 [42] "dowdata"                
 [43] "dvdsales"               
 [44] "emissions"              
 [45] "errata"                 
 [46] "ewr"                    
 [47] "exec.pay"               
 [48] "fat"                    
 [49] "father.son"             
 [50] "female.inc"             
 [51] "firstchi"               
 [52] "five.yr.temperature"    
 [53] "florida"                
 [54] "galileo"                
 [55] "galton"                 
 [56] "gap"                    
 [57] "gasprices"              
 [58] "getAnswer"              
 [59] "goalspergame"           
 [60] "google"                 
 [61] "grades"                 
 [62] "grip"                   
 [63] "hall.fame"              
 [64] "headtail"               
 [65] "healthy"                
 [66] "heartrate"              
 [67] "home"                   
 [68] "homedata"               
 [69] "homeprice"              
 [70] "homework"               
 [71] "HUMMER"                 
 [72] "income_percentiles"     
 [73] "iq"                     
 [74] "kid.weights"            
 [75] "KSI"                    
 [76] "last.tie"               
 [77] "lawsuits"               
 [78] "lorem"                  
 [79] "malpract"               
 [80] "mandms"                 
 [81] "math"                   
 [82] "maydow"                 
 [83] "Medicare"               
 [84] "midsize"                
 [85] "MLBattend"              
 [86] "movie_data_2011"        
 [87] "movies"                 
 [88] "mw.ages"                
 [89] "nba.draft"              
 [90] "nisdc"                  
 [91] "normtemp"               
 [92] "npdb"                   
 [93] "nym.2002"               
 [94] "ObamaApproval"          
 [95] "OBP"                    
 [96] "oral.lesion"            
 [97] "ozonemonthly"           
 [98] "paradise"               
 [99] "pi2000"                 
[100] "primes"                 
[101] "puerto"                 
[102] "QQplot"                 
[103] "rat"                    
[104] "reaction.time"          
[105] "reddrum"                
[106] "salmon.rate"            
[107] "salmonharvest"          
[108] "samhda"                 
[109] "SAT"                    
[110] "scatter.with.hist"      
[111] "scrabble"               
[112] "simple.chutes"          
[113] "simple.densityplot"     
[114] "simple.eda"             
[115] "simple.eda.ts"          
[116] "simple.fancy.stripchart"
[117] "simple.freqpoly"        
[118] "simple.hist.and.boxplot"
[119] "simple.lag"             
[120] "simple.lm"              
[121] "simple.median.test"     
[122] "simple.scatterplot"     
[123] "simple.sim"             
[124] "simple.violinplot"      
[125] "simple.z.test"          
[126] "skateranks"             
[127] "slc"                    
[128] "smokyph"                
[129] "snacks"                 
[130] "south"                  
[131] "southernosc"            
[132] "sp500.excess"           
[133] "Split.zoo"              
[134] "squareplot"             
[135] "stud.recs"              
[136] "student.expenses"       
[137] "superbarplot"           
[138] "tastesgreat"            
[139] "tcm1y"                  
[140] "tempsalinity"           
[141] "too.young"              
[142] "twins"                  
[143] "u2"                     
[144] "urchin.growth"          
[145] "vacation"               
[146] "violinplot"             
[147] "watertemp"              
[148] "wchomes"                
[149] "wellbeing"              
[150] "yellowfin"
> data("penguins")
> penguins
# A tibble: 344 × 8
   species island    bill_length_mm bill_depth_mm
   <fct>   <fct>              <dbl>         <dbl>
 1 Adelie  Torgersen           39.1          18.7
 2 Adelie  Torgersen           39.5          17.4
 3 Adelie  Torgersen           40.3          18  
 4 Adelie  Torgersen           NA            NA  
 5 Adelie  Torgersen           36.7          19.3
 6 Adelie  Torgersen           39.3          20.6
 7 Adelie  Torgersen           38.9          17.8
 8 Adelie  Torgersen           39.2          19.6
 9 Adelie  Torgersen           34.1          18.1
10 Adelie  Torgersen           42            20.2
# ℹ 334 more rows
# ℹ 4 more variables: flipper_length_mm <int>,
#   body_mass_g <int>, sex <fct>, year <int>
# ℹ Use `print(n = ...)` to see more rows

 

1) penguins 자료의 개수는?

> nrow(penguins)
[1] 344

2) penguins 자료에는 어떤 변수들이 있는가?

  • 컬럼 이름 확인  
> colnames(penguins)
[1] "species"           "island"           
[3] "bill_length_mm"    "bill_depth_mm"    
[5] "flipper_length_mm" "body_mass_g"      
[7] "sex"               "year"

3) species는 어떤 것들이 있으며 각각 몇 개의 자료가 있는가?

> table(penguins$species)

   Adelie Chinstrap    Gentoo 
      152        68       124

4) penguins 자료에 있는 4개의 연속변수 각각의 분포를 수업시간에 배운 내용을 바탕으로 살펴보시요.

> library(ggplot2)
> ggplot(penguins,aes(bill_length_mm))+geom_histogram()
`stat_bin()` using `bins = 30`. Pick better value with
`binwidth`.
Warning message:
Removed 2 rows containing non-finite values
(`stat_bin()`).

5) bill_length_mm과 flipper_length_mm의 산점도를 그리시오.

> library(ggplot2)
Warning message:
패키지 ‘ggplot2’는 R 버전 4.3.1에서 작성되었습니다
> ggplot(penguins,aes(bill_length_mm))+geom_freqpoly()
`stat_bin()` using `bins = 30`. Pick better value with
`binwidth`.
Warning message:
Removed 2 rows containing non-finite values
(`stat_bin()`). 
> # desity 는 한개의 변수로 나타낼 수 있다.

6) 5)에서 그린 산점도에 species 별로 다른 색을 칠하고 Species가 구별되는지 살펴보시오.

#산점도는 두개의 변수를 갖고 작업하는 것이다. 
ggplot(penguins,aes(bill_length_mm,flipper_length_mm))+geom_point()

ggplot(penguins,aes(x=bill_length_mm,y=flipper_length_mm, color=species))+geom_point()

 

7) 산점도를 Species별로 나누어서 그려보시오.

ggplot(penguins,aes(x=bill_length_mm,y=flipper_length_mm, color=species))+geom_point()+facet_wrap(~species)

8) 나머지 변수들도 같은 방식으로 자유롭게 살펴보시오