比较R中数据系列的子部分

时间:2013-10-11 09:04:04

标签: r

我有一个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*系列之间的区别感兴趣。

对于此示例,以及手边的数据点:
1500 cn - un为5972.566,即98.6%和 2000000的ci - ui为1462.479,即91%

如何轻松获取此数据?

我还计划将绝对差异绘制为相对于居中0的条形图,将百分比绘制为折线图,在同一图表中,ggplot2可以轻松实现这一点吗?

1 个答案:

答案 0 :(得分: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