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).
Vẽ biểu đồ phân tán giữa Sepal.Length và Sepal.Width, phân nhóm theo
Species bằng ggplot2.
mydata <- iris
Slength <- mydata$Sepal.Length
Swidth <- mydata$Sepal.Width
Plength <- mydata$Petal.Length
Pwidth <- mydata$Petal.Width
SV 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
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.
#python
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): ",result)
## tong do dai dai hoa (sedal): 538.4