2012-03-02 64 views
0

我有2個文件包含2個不同主機上相同測試的基準測試結果。結果是空間分隔格式的原始數據。使用R比較來自2個文件的數據使用R

我需要能夠比較他們彼此作爲主機是不一樣的。主要用於繪圖的目的。有沒有辦法添加每個文件獨有的「字段」或列(但與該文件中的所有行相同),然後我可以使用它來區分圖表中的結果?我還能如何去做這件事。

回答

3

你可以明確地添加額外的列。

例如:

# first file 
df1 <- read.table(...) 
# identify as first file 
df1$file_name <- 'file1' 

# second file 
df2 <- read.table(...) 
df2$file_name <- 'file2' 

# combine: 
df <- rbind(df1,df2) 

當然,你不需要做這麼多的步驟,但是這應該給你一個起點方向。

+0

這是拋出一個錯誤:「錯誤match.names(clabs,姓名(十一)): 名稱不匹配以前的名字」 – Jericon 2012-03-08 01:27:03

+0

這是因爲你的兩個數據框必須有不同的列名 - 您的文件1和文件2具有不同的列名稱。在合併之前將它們設置爲相同的(例如,如果'df1'具有列'a'和'c',而'df2'具有列'a'和'b',則R不會將'b'合併到同一列as'c'因爲它們可能有不同的列名,因爲它們不應該組合)。 – 2012-03-08 01:35:41

+0

他們有相同的列名。但是我已經在rbind之後定義了列的名稱。在修正它之前移動它。謝謝! – Jericon 2012-03-08 02:01:06

1

這裏的總體思路:

# Some example data 
d1 <- read.table(text = " 
a b 
1 2 
2 8 
3 4", header=T) 

d2 <- read.table(text = " 
a b 
1 3 
2 10 
3 5", header=T) 

# Add an identifying column to each data.frame, then 'rbind()' them together 
d1 <- data.frame(host = "host1", d1) 
d2 <- data.frame(host = "host2", d2) 
d <- rbind(d1, d2) 

# Plot the results with your graphical system of choice 
library(lattice) 
xyplot(b~a, group=host, data=d, type="b", auto.key=TRUE)