Bài 1. Hãy thực hiện các câu lệnh sau để có các véc tơ số xVec và yVec; hàm sample cho phép lấy ra một số ngẫu nhiên trong khoảng từ 0:999 và thực hiện lấy 250 số, tham số replce = T có nghĩa là có thể lấy lặp lại số đã có:
set.seed(50)
xVec <- sample(0:999, 250, replace=T)
yVec <- sample(0:999, 250, replace=T)
xVec
## [1] 367 10 819 94 862 881 813 374 706 903 271 17 986 764 276 474 339 761
## [19] 830 439 420 481 966 795 624 988 473 777 568 957 159 12 609 216 161 814
## [37] 926 905 362 250 518 852 593 835 86 325 678 455 773 996 935 180 975 259
## [55] 793 656 749 59 49 997 640 487 271 465 398 958 755 435 499 722 335 778
## [73] 915 500 94 215 805 239 810 104 755 55 868 233 125 581 441 332 257 68
## [91] 43 662 114 853 440 669 979 811 385 765 470 526 591 234 665 345 799 610
## [109] 221 646 391 253 261 640 865 563 477 130 206 388 504 988 469 855 752 887
## [127] 450 40 161 705 319 346 611 778 769 274 541 667 286 692 160 78 605 310
## [145] 23 949 87 895 362 344 598 561 510 777 251 485 786 369 576 607 778 919
## [163] 651 765 498 963 961 212 777 31 635 201 324 387 746 770 258 885 648 650
## [181] 725 440 232 272 924 799 438 25 376 218 665 996 247 708 960 78 762 102
## [199] 598 151 227 873 618 390 892 113 839 978 962 926 757 397 521 358 274 98
## [217] 711 189 601 921 450 409 814 827 79 150 566 120 983 3 703 46 317 257
## [235] 523 180 840 402 680 512 954 927 687 261 449 398 800 211 139 795
yVec
## [1] 537 8 702 95 134 236 162 4 901 617 74 519 161 237 412 56 225 726
## [19] 269 915 333 723 384 530 941 906 782 88 681 1 200 446 289 47 508 72
## [37] 721 79 83 159 929 827 653 320 839 39 467 800 869 171 692 261 172 313
## [55] 91 444 593 528 174 50 397 258 0 273 840 417 845 121 542 559 769 549
## [73] 453 866 210 263 505 181 696 402 685 566 259 788 642 334 171 902 369 130
## [91] 253 425 216 158 797 170 71 601 656 519 578 579 842 452 392 970 306 680
## [109] 792 662 243 284 868 875 262 401 594 92 795 880 171 225 582 424 366 402
## [127] 436 432 700 665 699 379 216 232 476 550 253 979 796 85 417 291 772 509
## [145] 134 140 836 974 456 236 196 990 403 954 486 483 473 512 846 66 943 19
## [163] 556 456 545 658 655 628 514 594 258 623 629 989 86 738 992 208 441 223
## [181] 0 301 758 386 510 197 870 910 933 641 872 21 242 904 326 647 988 381
## [199] 496 2 753 624 301 996 116 621 714 48 600 501 965 920 279 189 188 180
## [217] 360 237 755 328 555 50 783 856 927 214 759 39 700 764 131 179 666 111
## [235] 667 243 114 790 654 959 560 359 868 64 508 963 460 698 686 426
Giả sử rằng \(x=(x_{1},x_{2}....,x_{n})\) và \(y=(y_{1},y_{2},...,y_{n})\) ký hiệu cho 2 vecto xVec và yVec:
#Ý a
# chiều dài của vecto xVec
n <- length(xVec)
xVec[-c(n-1,n)] + 2*xVec[-c(1,n)] - xVec[c(1,2)]
## [1] 20 1638 640 1808 2257 2497 1194 1776 2145 1435 -62 1979 2147 1306 857
## [16] 1142 1494 2411 1341 1269 1015 2403 2189 2033 2233 1924 1660 1903 2115 1265
## [31] -184 1220 674 528 1422 2656 2369 1619 495 1276 1855 2028 1896 997 369
## [46] 1671 1221 1991 2398 2856 928 2120 1126 1835 1738 2144 500 147 1676 2267
## [61] 1247 1019 834 1251 1947 2458 1258 1423 1576 1382 1524 2598 1548 678 157
## [76] 1815 916 1849 651 1604 498 1781 967 473 920 1453 738 836 26 144
## [91] 1000 880 1453 1723 1411 2617 2234 1571 1548 1695 1155 1698 692 1554 988
## [106] 1933 1652 1042 1146 1418 530 765 1174 2360 1624 1507 370 532 615 1386
## [121] 2113 1916 1812 2349 2159 1777 163 352 1204 1333 644 1558 1800 2306 950
## [136] 1346 1508 1229 1303 1002 -51 1278 858 346 1554 1113 1510 1609 683 1530
## [151] 1353 1571 1697 1269 854 2047 1157 1511 1423 2153 2249 2211 1814 1751 2057
## [166] 2875 1018 1756 472 1291 670 839 731 1869 1919 1276 1661 2171 1581 2090
## [181] 1238 894 409 2110 2155 1665 121 767 445 1538 2290 1480 1296 2618 749
## [196] 1592 599 1288 533 595 1606 2099 1031 2164 751 1781 2428 2892 2447 2430
## [211] 1184 1429 870 896 103 1510 722 1381 2076 1811 901 2027 2101 975 12
## [226] 1272 439 2076 622 1399 428 670 464 1293 516 1850 1277 1752 1337 2410
## [241] 2441 2291 842 1149 878 1988 855 479
#ý b
sum(exp(xVec[-1]/xVec[-length(xVec)]+10))
## [1] 1.29604e+106
Bài 2. Sử dụng các véc tơ xVec và yVec tạo ra từ bài tập số 1 và các hàm thống kê có sẵn trong R như mean, sqrt, sum and abs. Thực hiện các công việc sau:
xVec
## [1] 367 10 819 94 862 881 813 374 706 903 271 17 986 764 276 474 339 761
## [19] 830 439 420 481 966 795 624 988 473 777 568 957 159 12 609 216 161 814
## [37] 926 905 362 250 518 852 593 835 86 325 678 455 773 996 935 180 975 259
## [55] 793 656 749 59 49 997 640 487 271 465 398 958 755 435 499 722 335 778
## [73] 915 500 94 215 805 239 810 104 755 55 868 233 125 581 441 332 257 68
## [91] 43 662 114 853 440 669 979 811 385 765 470 526 591 234 665 345 799 610
## [109] 221 646 391 253 261 640 865 563 477 130 206 388 504 988 469 855 752 887
## [127] 450 40 161 705 319 346 611 778 769 274 541 667 286 692 160 78 605 310
## [145] 23 949 87 895 362 344 598 561 510 777 251 485 786 369 576 607 778 919
## [163] 651 765 498 963 961 212 777 31 635 201 324 387 746 770 258 885 648 650
## [181] 725 440 232 272 924 799 438 25 376 218 665 996 247 708 960 78 762 102
## [199] 598 151 227 873 618 390 892 113 839 978 962 926 757 397 521 358 274 98
## [217] 711 189 601 921 450 409 814 827 79 150 566 120 983 3 703 46 317 257
## [235] 523 180 840 402 680 512 954 927 687 261 449 398 800 211 139 795
yVec
## [1] 537 8 702 95 134 236 162 4 901 617 74 519 161 237 412 56 225 726
## [19] 269 915 333 723 384 530 941 906 782 88 681 1 200 446 289 47 508 72
## [37] 721 79 83 159 929 827 653 320 839 39 467 800 869 171 692 261 172 313
## [55] 91 444 593 528 174 50 397 258 0 273 840 417 845 121 542 559 769 549
## [73] 453 866 210 263 505 181 696 402 685 566 259 788 642 334 171 902 369 130
## [91] 253 425 216 158 797 170 71 601 656 519 578 579 842 452 392 970 306 680
## [109] 792 662 243 284 868 875 262 401 594 92 795 880 171 225 582 424 366 402
## [127] 436 432 700 665 699 379 216 232 476 550 253 979 796 85 417 291 772 509
## [145] 134 140 836 974 456 236 196 990 403 954 486 483 473 512 846 66 943 19
## [163] 556 456 545 658 655 628 514 594 258 623 629 989 86 738 992 208 441 223
## [181] 0 301 758 386 510 197 870 910 933 641 872 21 242 904 326 647 988 381
## [199] 496 2 753 624 301 996 116 621 714 48 600 501 965 920 279 189 188 180
## [217] 360 237 755 328 555 50 783 856 927 214 759 39 700 764 131 179 666 111
## [235] 667 243 114 790 654 959 560 359 868 64 508 963 460 698 686 426
#a
yVec[yVec > 600]
## [1] 702 901 617 726 915 723 941 906 782 681 721 929 827 653 839 800 869 692 840
## [20] 845 769 866 696 685 788 642 902 797 601 656 842 970 680 792 662 868 875 795
## [39] 880 700 665 699 979 796 772 836 974 990 954 846 943 658 655 628 623 629 989
## [58] 738 992 758 870 910 933 641 872 904 647 988 753 624 996 621 714 965 920 755
## [77] 783 856 927 759 700 764 666 667 790 654 959 868 963 698 686
#b
s1 <- abs(yVec > 600)
s1
## [1] 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1 1 0 1 0 0 0 0 0 0 0 1
## [38] 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1
## [75] 0 0 0 0 1 0 1 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 0 1 1 1 0
## [112] 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1
## [149] 0 0 0 1 0 1 0 0 0 0 1 0 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 1 0 0 0 0 0 1 0 0
## [186] 0 1 1 1 1 1 0 0 1 0 1 1 0 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0
## [223] 1 1 1 0 1 0 1 1 0 0 1 0 1 0 0 1 1 1 0 0 1 0 0 1 0 1 1 0
#c
xVec[yVec>600]
## [1] 819 706 903 761 439 481 624 988 473 568 926 518 852 593 86 455 773 935 398
## [20] 755 335 500 810 755 233 125 332 440 811 385 591 345 610 221 646 261 640 206
## [39] 388 161 705 319 667 286 605 87 895 561 777 576 778 963 961 212 201 324 387
## [58] 770 258 232 438 25 376 218 665 708 78 762 227 873 390 113 839 757 397 601
## [77] 814 827 79 566 983 3 317 523 402 680 512 687 398 211 139
#d
s3 <- abs(xVec%%2==0)
sum(s3)
## [1] 117
#e
yVec[c(TRUE,FALSE,FALSE)]
## [1] 537 95 162 617 161 56 269 723 941 88 200 47 721 159 653 39 869 261 91
## [20] 528 397 273 845 559 453 263 696 566 642 902 253 158 71 519 842 970 792 284
## [39] 262 92 171 424 436 665 216 550 796 291 134 974 196 954 473 66 556 658 514
## [58] 623 86 208 0 386 870 641 242 647 496 624 116 48 965 189 360 328 783 214
## [77] 700 179 667 790 560 64 460 426
#Bài 3 Hàm cumprod cho phép tính tích lũy của một dãy số. Sử dụng tính chất của hàm cumprod, hãy tính giá trị của biểu thức sau: \[ \mathrm{S}=1+\frac{2}{3}+\left(\frac{2}{3} \frac{4}{5}\right)+\left(\frac{2}{3} \frac{4}{5} \frac{6}{7}\right)+\cdots+\left(\frac{2}{3} \frac{4}{5} \cdots \frac{38}{39}\right) \]
1 + sum(cumprod(seq(2,38, by = 2)/ seq(3,39, by =2)))
## [1] 6.976346
height <- c(180,165,160,193)
weight <- c(87,58,65,100)
data <- data.frame(weight, height)
bim <- (data$weight) / (data$height/100)^2
bim
## [1] 26.85185 21.30395 25.39062 26.84636
weight[bim > 25]
## [1] 87 65 100
install.packages("MASS")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.3'
## (as 'lib' is unspecified)
library(MASS)
data("painters")
Sau khi đã tải được dữ liệu, áp dụng phân tích dữ liệu thống kê cho biến định tính (biến school - trường phái hội họa cho từng họa sỹ), hãy thực hiện các nội dung sau:
# tính tần số xuất hiện của trường phái hội họa
school = painters$School
school.freq = table(school)
cbind(school.freq)
## school.freq
## A 10
## B 6
## C 6
## D 10
## E 7
## F 4
## G 7
## H 4
#Tính tần suất xuất hiện của trường phái hội họa
porb.schol <- school.freq/nrow(painters)
round(cbind(porb.schol),2)
## porb.schol
## A 0.19
## B 0.11
## C 0.11
## D 0.19
## E 0.13
## F 0.07
## G 0.13
## H 0.07
#trực quan biểu đồ
barplot(school.freq)
colors = c("red", "purple", "green", "violet", "#f8884d", "blue", "pink", "cyan")
barplot(school.freq,col=colors)