2017-10-07 21 views
0

既存の列の正の値のみの合計となる新しい列を作成したいとします。だから、列TotalImportSE3に私は彼らの誰もが正の和である場合は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-SE4の和を求めるしたいと思いますこれまでのところ

 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)] 

しかし、それは異なるlenghtsの二つのベクトルを作成し、それは完全に台無しに

出力は次のようになります。

+0

の名前ですか? – shea

+0

私はsumとwhich関数を使用しようとしましたが、これまでは別々の列の正の値を抽出して合計しました。 – MikeMEiL

+0

この情報を反映するために質問を編集する必要があります。このサイトは他の人を助けることを目的としており、あなたが何の努力もしていないように見える場合、人々は助けを求める傾向が薄いです。 – shea

答えて

3

あなたはこれを試すことができます。

df$TotalImportSE3=rowSums(df*(df>0)) 
  • dfは、あなたがこれまでにしようとしているものをあなたのデータフレーム
+0

完璧に動作します!しかし、私は実際にどのように*記号が動作するのか分かりません。データフレームの条件を肯定的なデータフレーム値だけを合計するようにしていますか?それらは複数の条件にすることができますか? – MikeMEiL

+0

df> 0はTRUEを返し、正の条件の場合はFALSEを返します(ゼロより大きいデータフレームオブジェクトはTRUEになり、ゼロより小さい値はFALSEになります)...次にdfに乗算することによって正の数 –

関連する問題