Câu 1 Dùng R để:

Tính giá trị trung bình, phương sai của tất cả các cột (trừ cột Species).

mydata <- iris
Slength <- mydata$Sepal.Length
Swidth <- mydata$Sepal.Width
Plength <-  mydata$Petal.Length
Pwidth <-  mydata$Petal.Width

noob code

mean(Slength) # Sepal.Length
## [1] 5.843333
mean(Swidth) # Sepal.Width
## [1] 3.057333
mean(Plength) #Petal.Length
## [1] 3.758
mean(Pwidth) #Petal.Width
## [1] 1.199333
var(Slength) # Sepal.Length
## [1] 0.6856935
var(Swidth) # Sepal.Width
## [1] 0.1899794
var(Plength) #Petal.Length
## [1] 3.116278
var(Pwidth) #Petal.Width
## [1] 0.5810063

AI code

sapply(mydata[, -5], mean)
## Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
##     5.843333     3.057333     3.758000     1.199333
sapply(mydata[, -5], var)
## Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
##    0.6856935    0.1899794    3.1162779    0.5810063

Vẽ biểu đồ phân tán giữa Sepal.Length và Sepal.Width, phân nhóm theo Species bằng ggplot2.

library(ggplot2)

ggplot(mydata, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
  geom_point(size = 2) +
  labs(title = "Scatter plot Sepal.Length vs Sepal.Width by Species",
       x = "Sepal Length",
       y = "Sepal Width") +
  theme_minimal()

library(reticulate)

câu 2 Dùng Pandas để:

Đọc file iris.csv.

Lọc các dòng có Petal.Length lớn hơn 4.0.

Tính tổng của cột Sepal.Length cho dữ liệu đã lọc.

import pandas as pd
df = pd.read_csv("iris.csv")
df_filtered = df[df["petal.length"] > 4.0]
result = df_filtered["sepal.length"].sum()
print(df_filtered)
##      sepal.length  sepal.width  petal.length  petal.width     variety
## 50            7.0          3.2           4.7          1.4  Versicolor
## 51            6.4          3.2           4.5          1.5  Versicolor
## 52            6.9          3.1           4.9          1.5  Versicolor
## 54            6.5          2.8           4.6          1.5  Versicolor
## 55            5.7          2.8           4.5          1.3  Versicolor
## ..            ...          ...           ...          ...         ...
## 145           6.7          3.0           5.2          2.3   Virginica
## 146           6.3          2.5           5.0          1.9   Virginica
## 147           6.5          3.0           5.2          2.0   Virginica
## 148           6.2          3.4           5.4          2.3   Virginica
## 149           5.9          3.0           5.1          1.8   Virginica
## 
## [84 rows x 5 columns]
print("tong do dai dai hoa (sedal.length): ",result)
## tong do dai dai hoa (sedal.length):  538.4