異なるDBシステムのパフォーマンス評価結果をプロットするために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
、私はよりエレガントな存在でなければならないという漠然とした感覚を持っている:私はこれをやっている時点では
溶液。何か案は?
結果が不完全な場合(たとえば、1つの反復の行数が他の繰り返し数よりも少ない場合など)はどうすればよいですか?
ありがとうございます!
実際にはループよりもエレガントです...ヒントのおかげです。 – behas
ddplyの出力フレームに "lines"列を含める場合はどうすればよいですか?私は単純に線上で平均を計算することでそれを行うことができます。行番号は静的な値であるため、これは何らかの意味を持ちません。 – behas
私はあなたが何を意味するのか見ていますが、私は同じ値の束の "平均"を取ることに害はないと思います! –