2014-10-31 81 views
0

我的原始數據看起來像這樣[R重塑將所有的值設置爲1個

data 
id1,id2,value 
A,1,-1.09 
B,1,-1.033 
C,1,-1.5 
A,2,9.1 
B,2,2.006 
C,2,-3.95 

我使用R中重塑包使用命令cast(data, id2 ~ id1)重塑它試圖但這是從值列將我所有的值設置爲1像這樣

A  B  C 
1 1  1  1 
2 1  1  1 

當我真的希望它是這樣的。任何人都可以請幫助我。

A  B  C 
1 -1.09 -1.033 -1.5 
2 9.1  2.006 -3.95 

編輯:它爲我加了fun.aggregate =意味着在演員函數結束。

回答

2

嘗試dcastreshape2

library(reshape2) 
## 
data <- read.table(
    text="id1 id2 value 
A 1 -1.09 
B 1 -1.033 
C 1 -1.5 
A 2 9.1 
B 2 2.006 
C 2 -3.95", 
    header=TRUE) 
## 
> dcast(data,id2~id1) 
    id2  A  B  C 
1 1 -1.09 -1.033 -1.50 
2 2 9.10 2.006 -3.95 
+0

感謝您的回答。我的數據實際上來自csv文件。所以我發現1是id2中數據重複的次數。我想要從值欄中取值。 – abn 2014-10-31 22:57:41

+2

@abn這個答案也是你想要的。現在,大多數人似乎更喜歡'reshape2'包,因爲它更方便用戶。 – Gregor 2014-11-01 00:02:17

0

我不得不向末尾添加聚合函數。

cast(data, id2 ~ id1,fun.aggregate = mean)