2017-04-07 142 views
-1

我有一個數據幀,我試圖對給定條件的每列求和。我正在使用colsum函數。基於這個結果,我想創建一個數據框。如何從一個colsum函數創建一個數據幀

基於這些結果,我想創建一個月份(如:2010-11)作爲列名,其對應的值的數據框中查看代碼

> colSums(Product.TRx[5:10]) 

2011-04 2011-05 2011-06 2011-07 2011-08 2011-09 2011-10 2011-11 2011-12 
     0  0 23318 21187 23933 22911 22600 23053 23467  

。我要添加一個名爲「產品」的新列和值爲「AAAAAA」數據幀應該是這樣的

Product 2011-04 2011-05 2011-06 2011-07 2011-08 2011-09 2011-10 2011-11 2011-12 
AAAAAA  0  0 23318 21187 23933 22911 22600 23053 23467 

如何在R代碼裏面呢?

非常感謝您的幫助。

回答

1

假設你的數據是列名的數字矩陣,像這樣:

> m = matrix(1:12,3,4) 
> colnames(m)=c("A","B","C","D") 

然後執行此操作:

> data.frame(Product="AAAA",t(colSums(m))) 
    Product A B C D 
1 AAAA 6 15 24 33 

如果你的東西是一個數據幀時,它仍然有效:

> md=data.frame(m) 
> md$D = runif(3) # mix up some floats 
> data.frame(Product="AAAA",t(colSums(md))) 
    Product A B C  D 
1 AAAA 6 15 24 1.285573 
+0

如果它不是一個矩陣,並混合整型和浮點:'data.frame(產品=「AAA」,lapply(地震,總和))',我想。 – Frank

+0

似乎也與DF一起工作。我會編輯... – Spacedman

+0

是的,我的意思是你的答案有效,但colSums會強制(這隻在我提到的特殊情況下才起作用)。 – Frank

0

您可以簡單地使用as.data.frame這樣:

df <- as.data.frame(t(colSums(Product.TRx[5:10]))) 

然後添加額外的列:

df$Product <- "AAAAAA"