{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "56c94857", "metadata": {}, "outputs": [], "source": [ "# install.packages('plyr')\n", "library(plyr)" ] }, { "cell_type": "code", "execution_count": 2, "id": "dd1b6f7d", "metadata": { "collapsed": true }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.frame: 9 × 5
학년과목결과중간기말
<chr><chr><chr><int><int>
1학년국어좋음 8090
1학년국어 나쁨5040
1학년국어 나쁨2050
1학년수학좋음 8395
1학년수학좋음 9386
2학년국어 나쁨4465
2학년국어좋음 9598
2학년수학좋음 9699
2학년수학 나쁨5769
\n" ], "text/latex": [ "A data.frame: 9 × 5\n", "\\begin{tabular}{lllll}\n", " 학년 & 과목 & 결과 & 중간 & 기말\\\\\n", " & & & & \\\\\n", "\\hline\n", "\t 1학년 & 국어 & 좋음 & 80 & 90\\\\\n", "\t 1학년 & 국어 & 나쁨 & 50 & 40\\\\\n", "\t 1학년 & 국어 & 나쁨 & 20 & 50\\\\\n", "\t 1학년 & 수학 & 좋음 & 83 & 95\\\\\n", "\t 1학년 & 수학 & 좋음 & 93 & 86\\\\\n", "\t 2학년 & 국어 & 나쁨 & 44 & 65\\\\\n", "\t 2학년 & 국어 & 좋음 & 95 & 98\\\\\n", "\t 2학년 & 수학 & 좋음 & 96 & 99\\\\\n", "\t 2학년 & 수학 & 나쁨 & 57 & 69\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 9 × 5\n", "\n", "| 학년 <chr> | 과목 <chr> | 결과 <chr> | 중간 <int> | 기말 <int> |\n", "|---|---|---|---|---|\n", "| 1학년 | 국어 | 좋음 | 80 | 90 |\n", "| 1학년 | 국어 | 나쁨 | 50 | 40 |\n", "| 1학년 | 국어 | 나쁨 | 20 | 50 |\n", "| 1학년 | 수학 | 좋음 | 83 | 95 |\n", "| 1학년 | 수학 | 좋음 | 93 | 86 |\n", "| 2학년 | 국어 | 나쁨 | 44 | 65 |\n", "| 2학년 | 국어 | 좋음 | 95 | 98 |\n", "| 2학년 | 수학 | 좋음 | 96 | 99 |\n", "| 2학년 | 수학 | 나쁨 | 57 | 69 |\n", "\n" ], "text/plain": [ " 학년 과목 결과 중간 기말\n", "1 1학년 국어 좋음 80 90 \n", "2 1학년 국어 나쁨 50 40 \n", "3 1학년 국어 나쁨 20 50 \n", "4 1학년 수학 좋음 83 95 \n", "5 1학년 수학 좋음 93 86 \n", "6 2학년 국어 나쁨 44 65 \n", "7 2학년 국어 좋음 95 98 \n", "8 2학년 수학 좋음 96 99 \n", "9 2학년 수학 나쁨 57 69 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "gradeDF = read.csv('grade.csv',sep = \",\")\n", "gradeDF" ] }, { "cell_type": "code", "execution_count": 4, "id": "06c772ca", "metadata": {}, "outputs": [ { "data": { "text/html": [ "618" ], "text/latex": [ "618" ], "text/markdown": [ "618" ], "text/plain": [ "[1] 618" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sum( gradeDF$중간 )" ] }, { "cell_type": "code", "execution_count": null, "id": "4c3d3821", "metadata": {}, "outputs": [], "source": [ "## 학년별 중간고사의 총합\n", "## ~별 집계" ] }, { "cell_type": "code", "execution_count": 5, "id": "8e365fbc", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\n", "
A data.frame: 2 × 2
학년학년별중간총합
<chr><int>
1학년326
2학년292
\n" ], "text/latex": [ "A data.frame: 2 × 2\n", "\\begin{tabular}{ll}\n", " 학년 & 학년별중간총합\\\\\n", " & \\\\\n", "\\hline\n", "\t 1학년 & 326\\\\\n", "\t 2학년 & 292\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 2 × 2\n", "\n", "| 학년 <chr> | 학년별중간총합 <int> |\n", "|---|---|\n", "| 1학년 | 326 |\n", "| 2학년 | 292 |\n", "\n" ], "text/plain": [ " 학년 학년별중간총합\n", "1 1학년 326 \n", "2 2학년 292 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ddply( gradeDF, \"학년\", summarise , 학년별중간총합=sum(중간) )" ] }, { "cell_type": "code", "execution_count": 8, "id": "04693a7a", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\n", "
A data.frame: 2 × 3
학년중간총합중간평균
<chr><int><dbl>
1학년32665.2
2학년29273.0
\n" ], "text/latex": [ "A data.frame: 2 × 3\n", "\\begin{tabular}{lll}\n", " 학년 & 중간총합 & 중간평균\\\\\n", " & & \\\\\n", "\\hline\n", "\t 1학년 & 326 & 65.2\\\\\n", "\t 2학년 & 292 & 73.0\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 2 × 3\n", "\n", "| 학년 <chr> | 중간총합 <int> | 중간평균 <dbl> |\n", "|---|---|---|\n", "| 1학년 | 326 | 65.2 |\n", "| 2학년 | 292 | 73.0 |\n", "\n" ], "text/plain": [ " 학년 중간총합 중간평균\n", "1 1학년 326 65.2 \n", "2 2학년 292 73.0 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ddply( gradeDF, \"학년\", summarise , 중간총합=sum(중간),중간평균=mean(중간) )" ] }, { "cell_type": "code", "execution_count": 9, "id": "6f05b02b", "metadata": { "collapsed": true }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\n", "
A data.frame: 2 × 3
학년기말평균중간평균
<chr><dbl><dbl>
1학년72.2065.2
2학년82.7573.0
\n" ], "text/latex": [ "A data.frame: 2 × 3\n", "\\begin{tabular}{lll}\n", " 학년 & 기말평균 & 중간평균\\\\\n", " & & \\\\\n", "\\hline\n", "\t 1학년 & 72.20 & 65.2\\\\\n", "\t 2학년 & 82.75 & 73.0\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 2 × 3\n", "\n", "| 학년 <chr> | 기말평균 <dbl> | 중간평균 <dbl> |\n", "|---|---|---|\n", "| 1학년 | 72.20 | 65.2 |\n", "| 2학년 | 82.75 | 73.0 |\n", "\n" ], "text/plain": [ " 학년 기말평균 중간평균\n", "1 1학년 72.20 65.2 \n", "2 2학년 82.75 73.0 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ddply( gradeDF, \"학년\", summarise , 기말평균=mean(기말),\n", " 중간평균=mean(중간) )" ] }, { "cell_type": "code", "execution_count": 10, "id": "78d9b1f4", "metadata": { "collapsed": true }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.frame: 9 × 7
학년과목결과중간기말기말평균중간평균
<chr><chr><chr><int><int><dbl><dbl>
1학년국어좋음 809072.2065.2
1학년국어 나쁨504072.2065.2
1학년국어 나쁨205072.2065.2
1학년수학좋음 839572.2065.2
1학년수학좋음 938672.2065.2
2학년국어 나쁨446582.7573.0
2학년국어좋음 959882.7573.0
2학년수학좋음 969982.7573.0
2학년수학 나쁨576982.7573.0
\n" ], "text/latex": [ "A data.frame: 9 × 7\n", "\\begin{tabular}{lllllll}\n", " 학년 & 과목 & 결과 & 중간 & 기말 & 기말평균 & 중간평균\\\\\n", " & & & & & & \\\\\n", "\\hline\n", "\t 1학년 & 국어 & 좋음 & 80 & 90 & 72.20 & 65.2\\\\\n", "\t 1학년 & 국어 & 나쁨 & 50 & 40 & 72.20 & 65.2\\\\\n", "\t 1학년 & 국어 & 나쁨 & 20 & 50 & 72.20 & 65.2\\\\\n", "\t 1학년 & 수학 & 좋음 & 83 & 95 & 72.20 & 65.2\\\\\n", "\t 1학년 & 수학 & 좋음 & 93 & 86 & 72.20 & 65.2\\\\\n", "\t 2학년 & 국어 & 나쁨 & 44 & 65 & 82.75 & 73.0\\\\\n", "\t 2학년 & 국어 & 좋음 & 95 & 98 & 82.75 & 73.0\\\\\n", "\t 2학년 & 수학 & 좋음 & 96 & 99 & 82.75 & 73.0\\\\\n", "\t 2학년 & 수학 & 나쁨 & 57 & 69 & 82.75 & 73.0\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 9 × 7\n", "\n", "| 학년 <chr> | 과목 <chr> | 결과 <chr> | 중간 <int> | 기말 <int> | 기말평균 <dbl> | 중간평균 <dbl> |\n", "|---|---|---|---|---|---|---|\n", "| 1학년 | 국어 | 좋음 | 80 | 90 | 72.20 | 65.2 |\n", "| 1학년 | 국어 | 나쁨 | 50 | 40 | 72.20 | 65.2 |\n", "| 1학년 | 국어 | 나쁨 | 20 | 50 | 72.20 | 65.2 |\n", "| 1학년 | 수학 | 좋음 | 83 | 95 | 72.20 | 65.2 |\n", "| 1학년 | 수학 | 좋음 | 93 | 86 | 72.20 | 65.2 |\n", "| 2학년 | 국어 | 나쁨 | 44 | 65 | 82.75 | 73.0 |\n", "| 2학년 | 국어 | 좋음 | 95 | 98 | 82.75 | 73.0 |\n", "| 2학년 | 수학 | 좋음 | 96 | 99 | 82.75 | 73.0 |\n", "| 2학년 | 수학 | 나쁨 | 57 | 69 | 82.75 | 73.0 |\n", "\n" ], "text/plain": [ " 학년 과목 결과 중간 기말 기말평균 중간평균\n", "1 1학년 국어 좋음 80 90 72.20 65.2 \n", "2 1학년 국어 나쁨 50 40 72.20 65.2 \n", "3 1학년 국어 나쁨 20 50 72.20 65.2 \n", "4 1학년 수학 좋음 83 95 72.20 65.2 \n", "5 1학년 수학 좋음 93 86 72.20 65.2 \n", "6 2학년 국어 나쁨 44 65 82.75 73.0 \n", "7 2학년 국어 좋음 95 98 82.75 73.0 \n", "8 2학년 수학 좋음 96 99 82.75 73.0 \n", "9 2학년 수학 나쁨 57 69 82.75 73.0 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ddply( gradeDF, \"학년\", transform , 기말평균=mean(기말),\n", " 중간평균=mean(중간) )" ] }, { "cell_type": "markdown", "id": "f22871ab", "metadata": {}, "source": [ "### data.table 패키지:빠른 검색 및 연산을 위해" ] }, { "cell_type": "code", "execution_count": 11, "id": "c92496b4", "metadata": {}, "outputs": [], "source": [ "\n", "# install.packages(\"data.table\")\n", "# data.table 패키지 로드\n", "library(data.table)" ] }, { "cell_type": "code", "execution_count": 15, "id": "221ce03e", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
  1. 1
  2. 1
  3. 1
  4. 1
  5. 2
  6. 2
  7. 2
  8. 2
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 1\n", "\\item 1\n", "\\item 1\n", "\\item 1\n", "\\item 2\n", "\\item 2\n", "\\item 2\n", "\\item 2\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 1\n", "2. 1\n", "3. 1\n", "4. 1\n", "5. 2\n", "6. 2\n", "7. 2\n", "8. 2\n", "\n", "\n" ], "text/plain": [ "[1] 1 1 1 1 2 2 2 2" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# rep( c(1,2), each=4)\n", "rep( 1:2, each=4)" ] }, { "cell_type": "code", "execution_count": 16, "id": "8d386848", "metadata": { "collapsed": true }, "outputs": [ { "data": { "text/html": [ "\n", "
  1. 0.224755006842315
  2. 0.117383625824004
  3. 0.0607440574094653
  4. 0.399846269516274
  5. 0.935898294905201
  6. 0.389705110341311
  7. 0.703204808756709
  8. 0.329415668500587
  9. 0.668128244578838
  10. 0.40226321015507
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 0.224755006842315\n", "\\item 0.117383625824004\n", "\\item 0.0607440574094653\n", "\\item 0.399846269516274\n", "\\item 0.935898294905201\n", "\\item 0.389705110341311\n", "\\item 0.703204808756709\n", "\\item 0.329415668500587\n", "\\item 0.668128244578838\n", "\\item 0.40226321015507\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 0.224755006842315\n", "2. 0.117383625824004\n", "3. 0.0607440574094653\n", "4. 0.399846269516274\n", "5. 0.935898294905201\n", "6. 0.389705110341311\n", "7. 0.703204808756709\n", "8. 0.329415668500587\n", "9. 0.668128244578838\n", "10. 0.40226321015507\n", "\n", "\n" ], "text/plain": [ " [1] 0.22475501 0.11738363 0.06074406 0.39984627 0.93589829 0.38970511\n", " [7] 0.70320481 0.32941567 0.66812824 0.40226321" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "runif(10) #0~1" ] }, { "cell_type": "code", "execution_count": 12, "id": "f06c2edf", "metadata": { "collapsed": true }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.frame: 48000000 × 3
yearmonthvalue
<int><int><dbl>
201210.148587166
201210.120807876
201210.614667156
201210.369752258
201210.121346171
201210.330971396
201210.430804984
201210.404022953
201210.110875000
201210.058353487
201210.548125013
201210.880323602
201210.288738890
201210.285392462
201210.374811831
201210.749654097
201210.172379978
201210.978577142
201210.003234281
201210.340910906
201210.539662852
201210.717013638
201210.663325960
201210.291598458
201210.671761449
201210.660027135
201210.660373735
201210.075242785
201210.901147913
201210.770226452
2015120.61829935
2015120.44962131
2015120.67894544
2015120.64179103
2015120.11911344
2015120.15315501
2015120.23582180
2015120.45141104
2015120.90477649
2015120.79977698
2015120.01873635
2015120.58248145
2015120.86048586
2015120.90103968
2015120.24180188
2015120.78979839
2015120.91914455
2015120.69111798
2015120.79319777
2015120.27779073
2015120.83058309
2015120.47284926
2015120.05467489
2015120.68336921
2015120.26228639
2015120.76498672
2015120.06769938
2015120.04222815
2015120.16744077
2015120.18254357
\n" ], "text/latex": [ "A data.frame: 48000000 × 3\n", "\\begin{tabular}{lll}\n", " year & month & value\\\\\n", " & & \\\\\n", "\\hline\n", "\t 2012 & 1 & 0.148587166\\\\\n", "\t 2012 & 1 & 0.120807876\\\\\n", "\t 2012 & 1 & 0.614667156\\\\\n", "\t 2012 & 1 & 0.369752258\\\\\n", "\t 2012 & 1 & 0.121346171\\\\\n", "\t 2012 & 1 & 0.330971396\\\\\n", "\t 2012 & 1 & 0.430804984\\\\\n", "\t 2012 & 1 & 0.404022953\\\\\n", "\t 2012 & 1 & 0.110875000\\\\\n", "\t 2012 & 1 & 0.058353487\\\\\n", "\t 2012 & 1 & 0.548125013\\\\\n", "\t 2012 & 1 & 0.880323602\\\\\n", "\t 2012 & 1 & 0.288738890\\\\\n", "\t 2012 & 1 & 0.285392462\\\\\n", "\t 2012 & 1 & 0.374811831\\\\\n", "\t 2012 & 1 & 0.749654097\\\\\n", "\t 2012 & 1 & 0.172379978\\\\\n", "\t 2012 & 1 & 0.978577142\\\\\n", "\t 2012 & 1 & 0.003234281\\\\\n", "\t 2012 & 1 & 0.340910906\\\\\n", "\t 2012 & 1 & 0.539662852\\\\\n", "\t 2012 & 1 & 0.717013638\\\\\n", "\t 2012 & 1 & 0.663325960\\\\\n", "\t 2012 & 1 & 0.291598458\\\\\n", "\t 2012 & 1 & 0.671761449\\\\\n", "\t 2012 & 1 & 0.660027135\\\\\n", "\t 2012 & 1 & 0.660373735\\\\\n", "\t 2012 & 1 & 0.075242785\\\\\n", "\t 2012 & 1 & 0.901147913\\\\\n", "\t 2012 & 1 & 0.770226452\\\\\n", "\t ⋮ & ⋮ & ⋮\\\\\n", "\t 2015 & 12 & 0.61829935\\\\\n", "\t 2015 & 12 & 0.44962131\\\\\n", "\t 2015 & 12 & 0.67894544\\\\\n", "\t 2015 & 12 & 0.64179103\\\\\n", "\t 2015 & 12 & 0.11911344\\\\\n", "\t 2015 & 12 & 0.15315501\\\\\n", "\t 2015 & 12 & 0.23582180\\\\\n", "\t 2015 & 12 & 0.45141104\\\\\n", "\t 2015 & 12 & 0.90477649\\\\\n", "\t 2015 & 12 & 0.79977698\\\\\n", "\t 2015 & 12 & 0.01873635\\\\\n", "\t 2015 & 12 & 0.58248145\\\\\n", "\t 2015 & 12 & 0.86048586\\\\\n", "\t 2015 & 12 & 0.90103968\\\\\n", "\t 2015 & 12 & 0.24180188\\\\\n", "\t 2015 & 12 & 0.78979839\\\\\n", "\t 2015 & 12 & 0.91914455\\\\\n", "\t 2015 & 12 & 0.69111798\\\\\n", "\t 2015 & 12 & 0.79319777\\\\\n", "\t 2015 & 12 & 0.27779073\\\\\n", "\t 2015 & 12 & 0.83058309\\\\\n", "\t 2015 & 12 & 0.47284926\\\\\n", "\t 2015 & 12 & 0.05467489\\\\\n", "\t 2015 & 12 & 0.68336921\\\\\n", "\t 2015 & 12 & 0.26228639\\\\\n", "\t 2015 & 12 & 0.76498672\\\\\n", "\t 2015 & 12 & 0.06769938\\\\\n", "\t 2015 & 12 & 0.04222815\\\\\n", "\t 2015 & 12 & 0.16744077\\\\\n", "\t 2015 & 12 & 0.18254357\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 48000000 × 3\n", "\n", "| year <int> | month <int> | value <dbl> |\n", "|---|---|---|\n", "| 2012 | 1 | 0.148587166 |\n", "| 2012 | 1 | 0.120807876 |\n", "| 2012 | 1 | 0.614667156 |\n", "| 2012 | 1 | 0.369752258 |\n", "| 2012 | 1 | 0.121346171 |\n", "| 2012 | 1 | 0.330971396 |\n", "| 2012 | 1 | 0.430804984 |\n", "| 2012 | 1 | 0.404022953 |\n", "| 2012 | 1 | 0.110875000 |\n", "| 2012 | 1 | 0.058353487 |\n", "| 2012 | 1 | 0.548125013 |\n", "| 2012 | 1 | 0.880323602 |\n", "| 2012 | 1 | 0.288738890 |\n", "| 2012 | 1 | 0.285392462 |\n", "| 2012 | 1 | 0.374811831 |\n", "| 2012 | 1 | 0.749654097 |\n", "| 2012 | 1 | 0.172379978 |\n", "| 2012 | 1 | 0.978577142 |\n", "| 2012 | 1 | 0.003234281 |\n", "| 2012 | 1 | 0.340910906 |\n", "| 2012 | 1 | 0.539662852 |\n", "| 2012 | 1 | 0.717013638 |\n", "| 2012 | 1 | 0.663325960 |\n", "| 2012 | 1 | 0.291598458 |\n", "| 2012 | 1 | 0.671761449 |\n", "| 2012 | 1 | 0.660027135 |\n", "| 2012 | 1 | 0.660373735 |\n", "| 2012 | 1 | 0.075242785 |\n", "| 2012 | 1 | 0.901147913 |\n", "| 2012 | 1 | 0.770226452 |\n", "| ⋮ | ⋮ | ⋮ |\n", "| 2015 | 12 | 0.61829935 |\n", "| 2015 | 12 | 0.44962131 |\n", "| 2015 | 12 | 0.67894544 |\n", "| 2015 | 12 | 0.64179103 |\n", "| 2015 | 12 | 0.11911344 |\n", "| 2015 | 12 | 0.15315501 |\n", "| 2015 | 12 | 0.23582180 |\n", "| 2015 | 12 | 0.45141104 |\n", "| 2015 | 12 | 0.90477649 |\n", "| 2015 | 12 | 0.79977698 |\n", "| 2015 | 12 | 0.01873635 |\n", "| 2015 | 12 | 0.58248145 |\n", "| 2015 | 12 | 0.86048586 |\n", "| 2015 | 12 | 0.90103968 |\n", "| 2015 | 12 | 0.24180188 |\n", "| 2015 | 12 | 0.78979839 |\n", "| 2015 | 12 | 0.91914455 |\n", "| 2015 | 12 | 0.69111798 |\n", "| 2015 | 12 | 0.79319777 |\n", "| 2015 | 12 | 0.27779073 |\n", "| 2015 | 12 | 0.83058309 |\n", "| 2015 | 12 | 0.47284926 |\n", "| 2015 | 12 | 0.05467489 |\n", "| 2015 | 12 | 0.68336921 |\n", "| 2015 | 12 | 0.26228639 |\n", "| 2015 | 12 | 0.76498672 |\n", "| 2015 | 12 | 0.06769938 |\n", "| 2015 | 12 | 0.04222815 |\n", "| 2015 | 12 | 0.16744077 |\n", "| 2015 | 12 | 0.18254357 |\n", "\n" ], "text/plain": [ " year month value \n", "1 2012 1 0.148587166\n", "2 2012 1 0.120807876\n", "3 2012 1 0.614667156\n", "4 2012 1 0.369752258\n", "5 2012 1 0.121346171\n", "6 2012 1 0.330971396\n", "7 2012 1 0.430804984\n", "8 2012 1 0.404022953\n", "9 2012 1 0.110875000\n", "10 2012 1 0.058353487\n", "11 2012 1 0.548125013\n", "12 2012 1 0.880323602\n", "13 2012 1 0.288738890\n", "14 2012 1 0.285392462\n", "15 2012 1 0.374811831\n", "16 2012 1 0.749654097\n", "17 2012 1 0.172379978\n", "18 2012 1 0.978577142\n", "19 2012 1 0.003234281\n", "20 2012 1 0.340910906\n", "21 2012 1 0.539662852\n", "22 2012 1 0.717013638\n", "23 2012 1 0.663325960\n", "24 2012 1 0.291598458\n", "25 2012 1 0.671761449\n", "26 2012 1 0.660027135\n", "27 2012 1 0.660373735\n", "28 2012 1 0.075242785\n", "29 2012 1 0.901147913\n", "30 2012 1 0.770226452\n", "⋮ ⋮ ⋮ ⋮ \n", "47999971 2015 12 0.61829935 \n", "47999972 2015 12 0.44962131 \n", "47999973 2015 12 0.67894544 \n", "47999974 2015 12 0.64179103 \n", "47999975 2015 12 0.11911344 \n", "47999976 2015 12 0.15315501 \n", "47999977 2015 12 0.23582180 \n", "47999978 2015 12 0.45141104 \n", "47999979 2015 12 0.90477649 \n", "47999980 2015 12 0.79977698 \n", "47999981 2015 12 0.01873635 \n", "47999982 2015 12 0.58248145 \n", "47999983 2015 12 0.86048586 \n", "47999984 2015 12 0.90103968 \n", "47999985 2015 12 0.24180188 \n", "47999986 2015 12 0.78979839 \n", "47999987 2015 12 0.91914455 \n", "47999988 2015 12 0.69111798 \n", "47999989 2015 12 0.79319777 \n", "47999990 2015 12 0.27779073 \n", "47999991 2015 12 0.83058309 \n", "47999992 2015 12 0.47284926 \n", "47999993 2015 12 0.05467489 \n", "47999994 2015 12 0.68336921 \n", "47999995 2015 12 0.26228639 \n", "47999996 2015 12 0.76498672 \n", "47999997 2015 12 0.06769938 \n", "47999998 2015 12 0.04222815 \n", "47999999 2015 12 0.16744077 \n", "48000000 2015 12 0.18254357 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "year = rep( c(2012:2015), each=12000000 )\n", "month = rep( rep( c(1:12), each=1000000 ),4)\n", "value = runif( 48000000 )\n", "\n", "ydf = data.frame( year, month, value)\n", "ydf" ] }, { "cell_type": "code", "execution_count": 17, "id": "609c8ea3", "metadata": {}, "outputs": [ { "data": { "text/plain": [ " user system elapsed \n", " 1.34 0.31 1.65 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "system.time( ydf[ydf$year==2012,] )" ] }, { "cell_type": "code", "execution_count": 18, "id": "9ec379ca", "metadata": { "collapsed": true }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.table: 48000000 × 3
yearmonthvalue
<int><int><dbl>
201210.148587166
201210.120807876
201210.614667156
201210.369752258
201210.121346171
201210.330971396
201210.430804984
201210.404022953
201210.110875000
201210.058353487
201210.548125013
201210.880323602
201210.288738890
201210.285392462
201210.374811831
201210.749654097
201210.172379978
201210.978577142
201210.003234281
201210.340910906
201210.539662852
201210.717013638
201210.663325960
201210.291598458
201210.671761449
201210.660027135
201210.660373735
201210.075242785
201210.901147913
201210.770226452
2015120.61829935
2015120.44962131
2015120.67894544
2015120.64179103
2015120.11911344
2015120.15315501
2015120.23582180
2015120.45141104
2015120.90477649
2015120.79977698
2015120.01873635
2015120.58248145
2015120.86048586
2015120.90103968
2015120.24180188
2015120.78979839
2015120.91914455
2015120.69111798
2015120.79319777
2015120.27779073
2015120.83058309
2015120.47284926
2015120.05467489
2015120.68336921
2015120.26228639
2015120.76498672
2015120.06769938
2015120.04222815
2015120.16744077
2015120.18254357
\n" ], "text/latex": [ "A data.table: 48000000 × 3\n", "\\begin{tabular}{lll}\n", " year & month & value\\\\\n", " & & \\\\\n", "\\hline\n", "\t 2012 & 1 & 0.148587166\\\\\n", "\t 2012 & 1 & 0.120807876\\\\\n", "\t 2012 & 1 & 0.614667156\\\\\n", "\t 2012 & 1 & 0.369752258\\\\\n", "\t 2012 & 1 & 0.121346171\\\\\n", "\t 2012 & 1 & 0.330971396\\\\\n", "\t 2012 & 1 & 0.430804984\\\\\n", "\t 2012 & 1 & 0.404022953\\\\\n", "\t 2012 & 1 & 0.110875000\\\\\n", "\t 2012 & 1 & 0.058353487\\\\\n", "\t 2012 & 1 & 0.548125013\\\\\n", "\t 2012 & 1 & 0.880323602\\\\\n", "\t 2012 & 1 & 0.288738890\\\\\n", "\t 2012 & 1 & 0.285392462\\\\\n", "\t 2012 & 1 & 0.374811831\\\\\n", "\t 2012 & 1 & 0.749654097\\\\\n", "\t 2012 & 1 & 0.172379978\\\\\n", "\t 2012 & 1 & 0.978577142\\\\\n", "\t 2012 & 1 & 0.003234281\\\\\n", "\t 2012 & 1 & 0.340910906\\\\\n", "\t 2012 & 1 & 0.539662852\\\\\n", "\t 2012 & 1 & 0.717013638\\\\\n", "\t 2012 & 1 & 0.663325960\\\\\n", "\t 2012 & 1 & 0.291598458\\\\\n", "\t 2012 & 1 & 0.671761449\\\\\n", "\t 2012 & 1 & 0.660027135\\\\\n", "\t 2012 & 1 & 0.660373735\\\\\n", "\t 2012 & 1 & 0.075242785\\\\\n", "\t 2012 & 1 & 0.901147913\\\\\n", "\t 2012 & 1 & 0.770226452\\\\\n", "\t ⋮ & ⋮ & ⋮\\\\\n", "\t 2015 & 12 & 0.61829935\\\\\n", "\t 2015 & 12 & 0.44962131\\\\\n", "\t 2015 & 12 & 0.67894544\\\\\n", "\t 2015 & 12 & 0.64179103\\\\\n", "\t 2015 & 12 & 0.11911344\\\\\n", "\t 2015 & 12 & 0.15315501\\\\\n", "\t 2015 & 12 & 0.23582180\\\\\n", "\t 2015 & 12 & 0.45141104\\\\\n", "\t 2015 & 12 & 0.90477649\\\\\n", "\t 2015 & 12 & 0.79977698\\\\\n", "\t 2015 & 12 & 0.01873635\\\\\n", "\t 2015 & 12 & 0.58248145\\\\\n", "\t 2015 & 12 & 0.86048586\\\\\n", "\t 2015 & 12 & 0.90103968\\\\\n", "\t 2015 & 12 & 0.24180188\\\\\n", "\t 2015 & 12 & 0.78979839\\\\\n", "\t 2015 & 12 & 0.91914455\\\\\n", "\t 2015 & 12 & 0.69111798\\\\\n", "\t 2015 & 12 & 0.79319777\\\\\n", "\t 2015 & 12 & 0.27779073\\\\\n", "\t 2015 & 12 & 0.83058309\\\\\n", "\t 2015 & 12 & 0.47284926\\\\\n", "\t 2015 & 12 & 0.05467489\\\\\n", "\t 2015 & 12 & 0.68336921\\\\\n", "\t 2015 & 12 & 0.26228639\\\\\n", "\t 2015 & 12 & 0.76498672\\\\\n", "\t 2015 & 12 & 0.06769938\\\\\n", "\t 2015 & 12 & 0.04222815\\\\\n", "\t 2015 & 12 & 0.16744077\\\\\n", "\t 2015 & 12 & 0.18254357\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.table: 48000000 × 3\n", "\n", "| year <int> | month <int> | value <dbl> |\n", "|---|---|---|\n", "| 2012 | 1 | 0.148587166 |\n", "| 2012 | 1 | 0.120807876 |\n", "| 2012 | 1 | 0.614667156 |\n", "| 2012 | 1 | 0.369752258 |\n", "| 2012 | 1 | 0.121346171 |\n", "| 2012 | 1 | 0.330971396 |\n", "| 2012 | 1 | 0.430804984 |\n", "| 2012 | 1 | 0.404022953 |\n", "| 2012 | 1 | 0.110875000 |\n", "| 2012 | 1 | 0.058353487 |\n", "| 2012 | 1 | 0.548125013 |\n", "| 2012 | 1 | 0.880323602 |\n", "| 2012 | 1 | 0.288738890 |\n", "| 2012 | 1 | 0.285392462 |\n", "| 2012 | 1 | 0.374811831 |\n", "| 2012 | 1 | 0.749654097 |\n", "| 2012 | 1 | 0.172379978 |\n", "| 2012 | 1 | 0.978577142 |\n", "| 2012 | 1 | 0.003234281 |\n", "| 2012 | 1 | 0.340910906 |\n", "| 2012 | 1 | 0.539662852 |\n", "| 2012 | 1 | 0.717013638 |\n", "| 2012 | 1 | 0.663325960 |\n", "| 2012 | 1 | 0.291598458 |\n", "| 2012 | 1 | 0.671761449 |\n", "| 2012 | 1 | 0.660027135 |\n", "| 2012 | 1 | 0.660373735 |\n", "| 2012 | 1 | 0.075242785 |\n", "| 2012 | 1 | 0.901147913 |\n", "| 2012 | 1 | 0.770226452 |\n", "| ⋮ | ⋮ | ⋮ |\n", "| 2015 | 12 | 0.61829935 |\n", "| 2015 | 12 | 0.44962131 |\n", "| 2015 | 12 | 0.67894544 |\n", "| 2015 | 12 | 0.64179103 |\n", "| 2015 | 12 | 0.11911344 |\n", "| 2015 | 12 | 0.15315501 |\n", "| 2015 | 12 | 0.23582180 |\n", "| 2015 | 12 | 0.45141104 |\n", "| 2015 | 12 | 0.90477649 |\n", "| 2015 | 12 | 0.79977698 |\n", "| 2015 | 12 | 0.01873635 |\n", "| 2015 | 12 | 0.58248145 |\n", "| 2015 | 12 | 0.86048586 |\n", "| 2015 | 12 | 0.90103968 |\n", "| 2015 | 12 | 0.24180188 |\n", "| 2015 | 12 | 0.78979839 |\n", "| 2015 | 12 | 0.91914455 |\n", "| 2015 | 12 | 0.69111798 |\n", "| 2015 | 12 | 0.79319777 |\n", "| 2015 | 12 | 0.27779073 |\n", "| 2015 | 12 | 0.83058309 |\n", "| 2015 | 12 | 0.47284926 |\n", "| 2015 | 12 | 0.05467489 |\n", "| 2015 | 12 | 0.68336921 |\n", "| 2015 | 12 | 0.26228639 |\n", "| 2015 | 12 | 0.76498672 |\n", "| 2015 | 12 | 0.06769938 |\n", "| 2015 | 12 | 0.04222815 |\n", "| 2015 | 12 | 0.16744077 |\n", "| 2015 | 12 | 0.18254357 |\n", "\n" ], "text/plain": [ " year month value \n", "1 2012 1 0.148587166\n", "2 2012 1 0.120807876\n", "3 2012 1 0.614667156\n", "4 2012 1 0.369752258\n", "5 2012 1 0.121346171\n", "6 2012 1 0.330971396\n", "7 2012 1 0.430804984\n", "8 2012 1 0.404022953\n", "9 2012 1 0.110875000\n", "10 2012 1 0.058353487\n", "11 2012 1 0.548125013\n", "12 2012 1 0.880323602\n", "13 2012 1 0.288738890\n", "14 2012 1 0.285392462\n", "15 2012 1 0.374811831\n", "16 2012 1 0.749654097\n", "17 2012 1 0.172379978\n", "18 2012 1 0.978577142\n", "19 2012 1 0.003234281\n", "20 2012 1 0.340910906\n", "21 2012 1 0.539662852\n", "22 2012 1 0.717013638\n", "23 2012 1 0.663325960\n", "24 2012 1 0.291598458\n", "25 2012 1 0.671761449\n", "26 2012 1 0.660027135\n", "27 2012 1 0.660373735\n", "28 2012 1 0.075242785\n", "29 2012 1 0.901147913\n", "30 2012 1 0.770226452\n", "⋮ ⋮ ⋮ ⋮ \n", "47999971 2015 12 0.61829935 \n", "47999972 2015 12 0.44962131 \n", "47999973 2015 12 0.67894544 \n", "47999974 2015 12 0.64179103 \n", "47999975 2015 12 0.11911344 \n", "47999976 2015 12 0.15315501 \n", "47999977 2015 12 0.23582180 \n", "47999978 2015 12 0.45141104 \n", "47999979 2015 12 0.90477649 \n", "47999980 2015 12 0.79977698 \n", "47999981 2015 12 0.01873635 \n", "47999982 2015 12 0.58248145 \n", "47999983 2015 12 0.86048586 \n", "47999984 2015 12 0.90103968 \n", "47999985 2015 12 0.24180188 \n", "47999986 2015 12 0.78979839 \n", "47999987 2015 12 0.91914455 \n", "47999988 2015 12 0.69111798 \n", "47999989 2015 12 0.79319777 \n", "47999990 2015 12 0.27779073 \n", "47999991 2015 12 0.83058309 \n", "47999992 2015 12 0.47284926 \n", "47999993 2015 12 0.05467489 \n", "47999994 2015 12 0.68336921 \n", "47999995 2015 12 0.26228639 \n", "47999996 2015 12 0.76498672 \n", "47999997 2015 12 0.06769938 \n", "47999998 2015 12 0.04222815 \n", "47999999 2015 12 0.16744077 \n", "48000000 2015 12 0.18254357 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dt = as.data.table( ydf)\n", "dt" ] }, { "cell_type": "code", "execution_count": 19, "id": "0955ccbc", "metadata": {}, "outputs": [ { "data": { "text/plain": [ " user system elapsed \n", " 0.37 0.25 0.33 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "setkey( dt, year)\n", "system.time( dt[dt$year==2012,] )" ] }, { "cell_type": "markdown", "id": "b39b08a5", "metadata": {}, "source": [ "### reshape패키지" ] }, { "cell_type": "code", "execution_count": 20, "id": "9b036002", "metadata": { "collapsed": true }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\n", "Attaching package: 'reshape'\n", "\n", "\n", "The following object is masked from 'package:data.table':\n", "\n", " melt\n", "\n", "\n", "The following objects are masked from 'package:plyr':\n", "\n", " rename, round_any\n", "\n", "\n" ] } ], "source": [ "# install.packages(\"reshape\")\n", "# reshape 패키지 로드\n", "library(reshape)" ] }, { "cell_type": "code", "execution_count": 22, "id": "ba53ad0d", "metadata": { "collapsed": true }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.frame: 3 × 4
namekorengmath
<chr><dbl><dbl><dbl>
홍길동807050
이순신908040
임꺽정305020
\n" ], "text/latex": [ "A data.frame: 3 × 4\n", "\\begin{tabular}{llll}\n", " name & kor & eng & math\\\\\n", " & & & \\\\\n", "\\hline\n", "\t 홍길동 & 80 & 70 & 50\\\\\n", "\t 이순신 & 90 & 80 & 40\\\\\n", "\t 임꺽정 & 30 & 50 & 20\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 3 × 4\n", "\n", "| name <chr> | kor <dbl> | eng <dbl> | math <dbl> |\n", "|---|---|---|---|\n", "| 홍길동 | 80 | 70 | 50 |\n", "| 이순신 | 90 | 80 | 40 |\n", "| 임꺽정 | 30 | 50 | 20 |\n", "\n" ], "text/plain": [ " name kor eng math\n", "1 홍길동 80 70 50 \n", "2 이순신 90 80 40 \n", "3 임꺽정 30 50 20 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "v1 = c('홍길동','이순신', '임꺽정')\n", "v2 = c(80,90, 30)\n", "v3 = c(70,80, 50)\n", "v4 = c(50,40, 20)\n", "df = data.frame( v1, v2,v3,v4)\n", "colnames(df) = c('name','kor','eng','math')\n", "df" ] }, { "cell_type": "code", "execution_count": 25, "id": "27208d8b", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.frame: 9 × 3
namevariablevalue
<chr><fct><dbl>
홍길동kor 80
이순신kor 90
임꺽정kor 30
홍길동eng 70
이순신eng 80
임꺽정eng 50
홍길동math50
이순신math40
임꺽정math20
\n" ], "text/latex": [ "A data.frame: 9 × 3\n", "\\begin{tabular}{lll}\n", " name & variable & value\\\\\n", " & & \\\\\n", "\\hline\n", "\t 홍길동 & kor & 80\\\\\n", "\t 이순신 & kor & 90\\\\\n", "\t 임꺽정 & kor & 30\\\\\n", "\t 홍길동 & eng & 70\\\\\n", "\t 이순신 & eng & 80\\\\\n", "\t 임꺽정 & eng & 50\\\\\n", "\t 홍길동 & math & 50\\\\\n", "\t 이순신 & math & 40\\\\\n", "\t 임꺽정 & math & 20\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 9 × 3\n", "\n", "| name <chr> | variable <fct> | value <dbl> |\n", "|---|---|---|\n", "| 홍길동 | kor | 80 |\n", "| 이순신 | kor | 90 |\n", "| 임꺽정 | kor | 30 |\n", "| 홍길동 | eng | 70 |\n", "| 이순신 | eng | 80 |\n", "| 임꺽정 | eng | 50 |\n", "| 홍길동 | math | 50 |\n", "| 이순신 | math | 40 |\n", "| 임꺽정 | math | 20 |\n", "\n" ], "text/plain": [ " name variable value\n", "1 홍길동 kor 80 \n", "2 이순신 kor 90 \n", "3 임꺽정 kor 30 \n", "4 홍길동 eng 70 \n", "5 이순신 eng 80 \n", "6 임꺽정 eng 50 \n", "7 홍길동 math 50 \n", "8 이순신 math 40 \n", "9 임꺽정 math 20 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "m = melt( df, id=c('name'))\n", "m" ] }, { "cell_type": "code", "execution_count": 27, "id": "09b7d041", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\n", "
A cast_df: 3 × 4
namekorengmath
<chr><dbl><dbl><dbl>
1이순신908040
2임꺽정305020
3홍길동807050
\n" ], "text/latex": [ "A cast\\_df: 3 × 4\n", "\\begin{tabular}{r|llll}\n", " & name & kor & eng & math\\\\\n", " & & & & \\\\\n", "\\hline\n", "\t1 & 이순신 & 90 & 80 & 40\\\\\n", "\t2 & 임꺽정 & 30 & 50 & 20\\\\\n", "\t3 & 홍길동 & 80 & 70 & 50\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A cast_df: 3 × 4\n", "\n", "| | name <chr> | kor <dbl> | eng <dbl> | math <dbl> |\n", "|---|---|---|---|---|\n", "| 1 | 이순신 | 90 | 80 | 40 |\n", "| 2 | 임꺽정 | 30 | 50 | 20 |\n", "| 3 | 홍길동 | 80 | 70 | 50 |\n", "\n" ], "text/plain": [ " name kor eng math\n", "1 이순신 90 80 40 \n", "2 임꺽정 30 50 20 \n", "3 홍길동 80 70 50 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cast( m ,id= c('name') )" ] }, { "cell_type": "code", "execution_count": 23, "id": "9d090311", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.frame: 3 × 4
namekorengmath
<chr><dbl><dbl><dbl>
홍길동807050
이순신908040
임꺽정305020
\n" ], "text/latex": [ "A data.frame: 3 × 4\n", "\\begin{tabular}{llll}\n", " name & kor & eng & math\\\\\n", " & & & \\\\\n", "\\hline\n", "\t 홍길동 & 80 & 70 & 50\\\\\n", "\t 이순신 & 90 & 80 & 40\\\\\n", "\t 임꺽정 & 30 & 50 & 20\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 3 × 4\n", "\n", "| name <chr> | kor <dbl> | eng <dbl> | math <dbl> |\n", "|---|---|---|---|\n", "| 홍길동 | 80 | 70 | 50 |\n", "| 이순신 | 90 | 80 | 40 |\n", "| 임꺽정 | 30 | 50 | 20 |\n", "\n" ], "text/plain": [ " name kor eng math\n", "1 홍길동 80 70 50 \n", "2 이순신 90 80 40 \n", "3 임꺽정 30 50 20 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df" ] } ], "metadata": { "kernelspec": { "display_name": "R", "language": "R", "name": "ir" }, "language_info": { "codemirror_mode": "r", "file_extension": ".r", "mimetype": "text/x-r-source", "name": "R", "pygments_lexer": "r", "version": "4.4.1" } }, "nbformat": 4, "nbformat_minor": 5 }