2017-10-07 79 views
0

我想創建一個新列,該列將是現有列中只有正值的總和。因此,在列TotalImportSE3我想獲得的SE3-NO1,SE3-DK1,SE3-FI,SE3,SE4唯一的正值,列的總和,如果其中沒有人是積極的總和應爲0滿足條件時數據幀的總和列

 SE3 - NO1 SE3 - DK1 SE3 - FI SE3 - SE2 SE3 - SE4 TotalImportSE3 
47  1114  666  -225  2716  -3784    NA 
48  1009  671  -151  1491  -2943    NA 
54  1057  711 -1062  1658  -2201    NA 
55  1077  711 -1213  3492  -3015    NA 
94  772  414  -501  2904  -2262    NA 
95  -786  -314  -407  -2368  -2005    NA 

輸出應該是這樣的:

 SE3 - NO1 SE3 - DK1 SE3 - FI SE3 - SE2 SE3 - SE4 TotalImportSE3 
47  1114  666  -225  2716  -3784    4496 
48  1009  671  -151  1491  -2943    3171 
54  1057  711 -1062  1658  -2201    3426 
55  1077  711 -1213  3492  -3015    5280 
94  772  414  -501  2904  -2262    4090 
95  -786  -314  -407  -2368  -2005    0 

到目前爲止,我的努力:

df1 <- df$`SE3 - NO1`[which(Data$`SE3 - NO1`>0)] 
df2 <- df$`SE3 - DK1`[which(Data$`SE3 - DK1`>0)] 

但它確實創造兩種不同長度的兩個載體,所以它完全攪亂。

+0

的名字你嘗試過這麼遠嗎? – shea

+0

我試圖使用sum和哪個函數,但到目前爲止,我設法提取單獨列的正值,然後對它們進行求和,而不是同時對所有列進行求和。 – MikeMEiL

+0

你應該編輯你的問題以反映這些信息。該網站旨在幫助他人,當你看起來沒有做出任何努力時,人們不太願意提供幫助。 – shea

回答

3

你可以試試這個:

df$TotalImportSE3=rowSums(df*(df>0)) 
  • df是你的數據框
+0

完美的作品!但是,我不太瞭解*符號是如何工作的,它是否僅僅爲數據幀僅彙總正數據幀值的條件?那些可以是多個條件? – MikeMEiL

+0

對於正數條件,df> 0返回TRUE和FALSE(大於零的數據框對象變爲TRUE且小於零變爲FALSE)...然後通過乘以df返回正數 –