Exercise 1:

Tạo ra một véc tơ X gồm 15 phần tử, có dạng sau: X(15, 14, 13…,1). Yêu cầu:

  • Tính tổng các phần tử của véc tơ X
  • Tính giá trị trung bình các phần tử của véc tơ X
  • Chuyển véc tơ X từ dạng numeric về dạng character và tạo ra véc tơ Y có dạng sau: Y = (“15th”, “14th”, “13th”, ….., “1th”)
X <- rev(1:15)
X
#Tinh tổng các phần tử véc tơ X:
sum(X)
#Tính giá trị trung bình:
mean(X)
#Chuyển thành character
as.character(X) -> Y
install.packages("magrittr")
library(magrittr)
Y %>% paste(., "th", sep = "")

Exercise 2:

Tạo ra véc tơ fruits gồm các giá trị như sau: Fruits(“apple”, “bananas”, “pineapple”, “watermelon”, “orange”). Yêu cầu:

  • Đếm số phần tử của véc tơ fruits, fruits là dạng véc tơ gì?
  • Có bao nhiêu ký tự có định dạng “apple”, hãy chỉ ra vị trí và in ra màn hình
  • Hãy đếm số ký tự của từng ký tự trong véc tơ fruits, hãy in ra màn hình
fruits <- c("apple", "bananas", "pineapple", "watermelon", "orange")
# Đếm số phần tử của fruits
length(fruits)
class(fruits)
# Tìm ký tự apple trong fruits - hint: Dùng hàm grep() để tìm ra chỉ số của ký tự
index <- grep(pattern = "apple", fruits)
index
fruits[index]
#Đếm số ký tự của từng ký tự trong véc tơ fruits
nchar(fruits)

Exercise 3:

Thực hiện phép tính RMSE (Root Mean Square Error) - Đây là phép tính khá thông dụng trong machine learning. Phép tính trên được gọi là phép tính lấy căn trung bình số dư. Phép tính được mô tả như sau:

Yêu cầu: Giả sử chúng ta có véc tơ t=(1, 3.4, 5.4, 6.1, 3.2) - gọi là véc tơ trong tập quan sát được; véc tơ y = (1.1, 2.3, 5, 8, 2.9) - là các kết quả dự đoán được (predicted). Véc tơ t và véc tơ y có cùng 5 phần tử, hãy tính RMSE cho 2 véc tơ này theo công thức trên.

t <- c(1, 3.4, 5.4, 6.1, 3.2)
y <- c(1.1, 2.3, 5, 8, 2.9)


#,cài đặt thư viện Metrics và sử dụng function rmse
install.packages("Metrics")
library(Metrics)
rmse(t, y)
LS0tDQphdXRob3I6ICJBdXRob3I6IFRyYW4gUXVhbmcgUXV5Ig0Kc3VidGl0bGU6ICJFeGVyY2lzZSAxNSBKdW5lIg0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50OiANCiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlDQogICAgIyBjb2RlX2ZvbGRpbmc6IGhpZGUNCiAgICBoaWdobGlnaHQ6IHplbmJ1cm4NCiAgICAjIG51bWJlcl9zZWN0aW9uczogeWVzDQogICAgdGhlbWU6ICJmbGF0bHkiDQogICAgdG9jOiBUUlVFDQogICAgdG9jX2Zsb2F0OiBUUlVFDQotLS0NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUpDQpgYGANCg0KIyBFeGVyY2lzZSAxOg0KICBU4bqhbyByYSBt4buZdCB2w6ljIHTGoSBYIGfhu5NtIDE1IHBo4bqnbiB04butLCBjw7MgZOG6oW5nIHNhdTogWCgxNSwgMTQsIDEz4oCmLDEpLiBZw6p1IGPhuqd1Og0KICANCi0gVMOtbmggdOG7lW5nIGPDoWMgcGjhuqduIHThu60gY+G7p2EgdsOpYyB0xqEgWA0KLSBUw61uaCBnacOhIHRy4buLIHRydW5nIGLDrG5oIGPDoWMgcGjhuqduIHThu60gY+G7p2EgdsOpYyB0xqEgWA0KLSBDaHV54buDbiB2w6ljIHTGoSBYIHThu6sgZOG6oW5nIG51bWVyaWMgduG7gSBk4bqhbmcgY2hhcmFjdGVyIHbDoCB04bqhbyByYSB2w6ljIHTGoSBZIGPDsyBk4bqhbmcgc2F1OiBZID0gKOKAnDE1dGjigJ0sIOKAnDE0dGjigJ0sIOKAnDEzdGjigJ0sIOKApi4uLCDigJwxdGjigJ0pDQoNCg0KYGBge3IgZXZhbCA9IEZBTFNFfQ0KWCA8LSByZXYoMToxNSkNClgNCiNUaW5oIHThu5VuZyBjw6FjIHBo4bqnbiB04butIHbDqWMgdMahIFg6DQpzdW0oWCkNCiNUw61uaCBnacOhIHRy4buLIHRydW5nIGLDrG5oOg0KbWVhbihYKQ0KI0NodXnhu4NuIHRow6BuaCBjaGFyYWN0ZXINCmFzLmNoYXJhY3RlcihYKSAtPiBZDQppbnN0YWxsLnBhY2thZ2VzKCJtYWdyaXR0ciIpDQpsaWJyYXJ5KG1hZ3JpdHRyKQ0KWSAlPiUgcGFzdGUoLiwgInRoIiwgc2VwID0gIiIpDQoNCmBgYA0KDQojIEV4ZXJjaXNlIDI6DQpU4bqhbyByYSB2w6ljIHTGoSBmcnVpdHMgZ+G7k20gY8OhYyBnacOhIHRy4buLIG5oxrAgc2F1Og0KRnJ1aXRzKOKAnGFwcGxl4oCdLCDigJxiYW5hbmFz4oCdLCDigJxwaW5lYXBwbGXigJ0sIOKAnHdhdGVybWVsb27igJ0sIOKAnG9yYW5nZeKAnSkuIFnDqnUgY+G6p3U6DQoNCi0JxJDhur9tIHPhu5EgcGjhuqduIHThu60gY+G7p2EgdsOpYyB0xqEgZnJ1aXRzLCBmcnVpdHMgbMOgIGThuqFuZyB2w6ljIHTGoSBnw6w/DQotCUPDsyBiYW8gbmhpw6p1IGvDvSB04buxIGPDsyDEkeG7i25oIGThuqFuZyDigJxhcHBsZeKAnSwgaMOjeSBjaOG7iSByYSB24buLIHRyw60gdsOgIGluIHJhIG3DoG4gaMOsbmgNCi0JSMOjeSDEkeG6v20gc+G7kSBrw70gdOG7sSBj4bunYSB04burbmcga8O9IHThu7EgdHJvbmcgdsOpYyB0xqEgZnJ1aXRzLCBow6N5IGluIHJhIG3DoG4gaMOsbmgNCg0KYGBge3IgZXZhbD1GQUxTRX0NCmZydWl0cyA8LSBjKCJhcHBsZSIsICJiYW5hbmFzIiwgInBpbmVhcHBsZSIsICJ3YXRlcm1lbG9uIiwgIm9yYW5nZSIpDQojIMSQ4bq/bSBz4buRIHBo4bqnbiB04butIGPhu6dhIGZydWl0cw0KbGVuZ3RoKGZydWl0cykNCmNsYXNzKGZydWl0cykNCiMgVMOsbSBrw70gdOG7sSBhcHBsZSB0cm9uZyBmcnVpdHMgLSBoaW50OiBEw7luZyBow6BtIGdyZXAoKSDEkeG7gyB0w6xtIHJhIGNo4buJIHPhu5EgY+G7p2Ega8O9IHThu7ENCmluZGV4IDwtIGdyZXAocGF0dGVybiA9ICJhcHBsZSIsIGZydWl0cykNCmluZGV4DQpmcnVpdHNbaW5kZXhdDQojxJDhur9tIHPhu5Ega8O9IHThu7EgY+G7p2EgdOG7q25nIGvDvSB04buxIHRyb25nIHbDqWMgdMahIGZydWl0cw0KbmNoYXIoZnJ1aXRzKQ0KDQpgYGANCg0KIyBFeGVyY2lzZSAzOg0KVGjhu7FjIGhp4buHbiBwaMOpcCB0w61uaCBSTVNFIChSb290IE1lYW4gU3F1YXJlIEVycm9yKSAtIMSQw6J5IGzDoCBwaMOpcCB0w61uaCBraMOhIHRow7RuZyBk4bulbmcgdHJvbmcgbWFjaGluZSBsZWFybmluZy4gUGjDqXAgdMOtbmggdHLDqm4gxJHGsOG7o2MgZ+G7jWkgbMOgIHBow6lwIHTDrW5oIGzhuqV5IGPEg24gdHJ1bmcgYsOsbmggc+G7kSBkxrAuIFBow6lwIHTDrW5oIMSRxrDhu6NjIG3DtCB04bqjIG5oxrAgc2F1Og0KDQpZw6p1IGPhuqd1OiBHaeG6oyBz4butIGNow7puZyB0YSBjw7MgdsOpYyB0xqEgdD0oMSwgMy40LCA1LjQsIDYuMSwgMy4yKSAtIGfhu41pIGzDoCB2w6ljIHTGoSB0cm9uZyB04bqtcCBxdWFuIHPDoXQgxJHGsOG7o2M7IHbDqWMgdMahIHkgPSAoMS4xLCAyLjMsIDUsIDgsIDIuOSkgLSBsw6AgY8OhYyBr4bq/dCBxdeG6oyBk4buxIMSRb8OhbiDEkcaw4bujYyAocHJlZGljdGVkKS4NClbDqWMgdMahIHQgdsOgIHbDqWMgdMahIHkgY8OzIGPDuW5nIDUgcGjhuqduIHThu60sIGjDo3kgdMOtbmggUk1TRSBjaG8gMiB2w6ljIHTGoSBuw6B5IHRoZW8gY8O0bmcgdGjhu6ljIHRyw6puLg0KDQpgYGB7ciBldmFsPUZBTFNFfQ0KdCA8LSBjKDEsIDMuNCwgNS40LCA2LjEsIDMuMikNCnkgPC0gYygxLjEsIDIuMywgNSwgOCwgMi45KQ0KDQoNCiMsY8OgaSDEkeG6t3QgdGjGsCB2aeG7h24gTWV0cmljcyB2w6Agc+G7rSBk4bulbmcgZnVuY3Rpb24gcm1zZQ0KaW5zdGFsbC5wYWNrYWdlcygiTWV0cmljcyIpDQpsaWJyYXJ5KE1ldHJpY3MpDQpybXNlKHQsIHkpDQoNCmBgYA0KDQo=