2013-10-11 32 views
0

我有一個data.frame(來自csv文件),它對於某些正在運行的程序的幾個特性具有不同的測量值。比較R中的數據系列的子部分

> 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在150萬將是5972.566,或98.6%,
ci - ui在200萬將是1462.479,或91%

我怎麼能輕易得出這個數據?

我也計劃將相對於居中0的條形圖和折線圖中的百分比作爲絕對差值繪製在同一圖表中,這很容易與ggplot2

+0

你真的有'data.table'或者只是'data.frame'嗎? – Roland

+0

這是一個'data.frame',使用read.table'讀取。 – Tobias

+0

對於每個input_sizes你有許多c * -u *嗎? – agstudy

回答

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 
+0

謝謝。我說得對,'input_size'然後不能發生超過功能類? – Tobias

+0

我不明白你的問題。 – Roland

+0

沒關係,我之前做過一個選擇錯誤,導致每個功能(例如u或c)有多個輸入大小(例如1500000),導致dcast不起作用。但現在我明白了。 – Tobias