0

我有一个 data.frame(来自 csv 文件),它对某些正在运行的程序的几个功能具有不同的测量值。

> bench
   features  input_sizes  arithmetic.mean
1        ui     70000000         3714.195
2        un      1500000           83.695
3        cn      1500000         6056.261
4        ui      2000000          144.052
5        ci      2000000         1606.531
6  …

我能够绘制这些数据并将这些特征相互比较(arithmetic.mean取决于input_sizes分组依据features)。

但是,我对某些功能系列、u*系列与c*系列之间的区别感兴趣。

对于此示例,手头的数据点:
cn - un在 1500000 处将是 5972.566,或 98.6%,
ci - ui在 2000000 处将是 1462.479,或 91%

我怎样才能轻松得出这些数据?

我还计划将绝对差异绘制为相对于居中 0 的条形图,并将百分比绘制为折线图,两者都在同一个图中,这很容易实现ggplot2吗?

4

1 回答 1

1
DF <- read.table(text="   features  input_sizes  arithmetic.mean
1        ui     70000000         3714.195
2        un      1500000           83.695
3        cn      1500000         6056.261
4        ui      2000000          144.052
5        ci      2000000         1606.531", header=TRUE)

#split the feature id
DF$feat1 <- substr(DF$features,1,1)
DF$feat2 <- substr(DF$features,2,2)

library(reshape2)
DF1 <- dcast(DF, input_sizes+feat2~feat1, value.var="arithmetic.mean")
DF1$diff <- DF1$c-DF1$u

#   input_sizes feat2        c        u     diff
# 1     1500000     n 6056.261   83.695 5972.566
# 2     2000000     i 1606.531  144.052 1462.479
# 3    70000000     i       NA 3714.195       NA
于 2013-10-11T09:51:43.100 回答