Я хотел бы использовать R для отображения результатов оценки производительности различных систем БД. Для каждой системы я загружал одни и те же данные и выполнял одни и те же запросы в несколько итераций.
Данные для отдельных систем выглядят так:
"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
Что мне нужно сейчас (для построения графика) - это матрица или фрейм данных, содержащий среднее из этих измерений.
На данный момент я делаю это:
# 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
Я мог бы поместить все это в функцию и вычислить среднюю матрицу в цикле for, но у меня есть смутное ощущение, что должно быть более элегантное решение. Есть идеи?
Что я могу сделать для случаев, когда у меня есть неполные результаты, например, когда на одной итерации меньше строк, чем на других?
Спасибо!