Tôi muốn sử dụng R để vẽ kết quả đánh giá hiệu suất của các hệ thống DB riêng biệt. Đối với mỗi hệ thống, tôi đã nạp cùng một dữ liệu và thực thi cùng một truy vấn trong một số lần lặp lại.tính trung bình trên nhiều khung dữ liệu
Các dữ liệu cho một hệ thống đơn trông như thế này:
"iteration", "lines", "loadTime", "query1", "query2", "query3"
1, 100000, 120.4, 0.5, 6.4, 1.2
1, 100000, 110.1, 0.1, 5.2, 2.1
1, 50000, 130.3, 0.2, 4.3, 2.2
2, 100000, 120.4, 0.1, 2.4, 1.2
2, 100000, 300.2, 0.2, 4.5, 1.4
2, 50000, 235.3, 0.4, 4.2, 0.5
3, 100000, 233.5, 0.7, 8.3, 6.7
3, 100000, 300.1, 0.9, 0.5, 4.4
3, 50000, 100.2, 0.4, 9.2, 1.2
Những gì tôi cần bây giờ (đối với âm mưu) là một khung ma trận hoặc dữ liệu có chứa tỷ lệ trung bình của các phép đo.
Hiện nay tôi đang làm điều này:
# read the file
all_results <- read.csv(file="file.csv", head=TRUE, sep=",")
# split the results by iteration
results <- split(all_results, all_results$iteration)
# convert each result into a data frane
r1 = as.data.frame(results[1])
r2 = as.data.frame(results[2])
r3 = as.data.frame(results[3])
# calculate the average
(r1 + r2 +r3)/3
tôi có thể đưa tất cả điều này vào một chức năng và tính toán ma trận trung bình trong một vòng lặp for, nhưng tôi có cảm giác mơ hồ rằng phải có một thanh lịch hơn dung dịch. Ý tưởng nào?
Tôi có thể làm gì cho các trường hợp khi tôi có kết quả không đầy đủ, ví dụ: khi một lần lặp có ít hàng hơn các hàng khác?
Cảm ơn!
thực sự thanh lịch hơn cho vòng lặp ... nhờ gợi ý. – behas
nếu tôi muốn bao gồm cột "dòng" trong khung đầu ra của ddply? Tôi có thể làm điều đó bằng cách tính toán giá trị trung bình cũng trên các dòng; nhưng điều này bằng cách nào đó không có ý nghĩa vì các số dòng là giá trị tĩnh; – behas
Tôi hiểu ý bạn là gì, nhưng tôi cho rằng không có hại gì khi lấy "trung bình" của một loạt các giá trị giống nhau! –