2016-01-21 114 views
1

我有一個包含數據的csv文件;類型和區域。我想根據類型對數據進行排序,然後添加區域,之後我想以csv/excel格式保存該文件。數據如下所示:排序,求和以csv格式保存

TYPE Area 
P 38304 
P 14729 
P 39342 
R 652 
R 497 
C 4506 
U 1705 
U 1513 
U 1514 
U 1531 
U 1580 
U 1581 
U 113509 
U 13198 
U 114730 
U 12402 
C 3252 

我想使數據如下

P R U C 
38304 652 1705 4506 
14729 497 1513 3252 
39342  1514  
      1531  
      1580  
      1581  
      113509 
      13198 
      114730 
      12402 

後,用柱

P R U C 
92375 1149 263263 7758 

到目前爲止,我有以下代碼執行總和;

data=read.table("Book1.csv", header=TRUE, sep=',') 
    x=(sapply(split(data$Area, data$TYPE), sort)) 
    write.csv(x, file="test.csv") 

我試着先寫csv,但是由於行不等我不能寫csv。我被卡住了,我知道可以先添加,然後寫出最終的輸出,但我無法進行編碼。 謝謝里拉

+3

我們在說'xtabs(Area〜TYPE,data)'嗎? –

+0

或'tapply(df $ Area,df $ TYPE,sum)'。如果你想根據'TYPE'分割'Area'中的值:'split(df $ Area,df $ TYPE)'(然後'sapply(split(df $ Area,df $ TYPE),sum)') 。 – nicola

回答

0

我希望這個工程!

library(plyr) 
newdata <- data[order(Type, Area),] 
data.new <- ddply(newdata, c("TYPE"), summarise, Area = sum("Area")) 
t.data <- t(data.new) 
write.csv(x, file="test.csv")