私はR
を初めて利用しており、特にfunction
をプログラミングしています。そのため、理解していただければ幸いです。値のsum
ならば、R:特定の列の値の合計を行い、特定の基準を満たしたときに行番号を報告する関数を作成するにはどうすればよいですか?
の1- add
特定variable
(列)line by line (row by row)
と
2-値:私は、次の行為を行うためのfunction
を書くことができる方法を知りたい
100より大きい。 >100
3、stop
そして、(総額< 100)の基準を満たすまで、すべての行が懇願すると報告しますか?
DT <- data.table(ID = c(1:21),Var1 = LETTERS[1:21], Var2 = seq(9, 19, .5))
> DT
ID Var1 Var2
1: 1 A 9.0
2: 2 B 9.5
3: 3 C 10.0
4: 4 D 10.5
5: 5 E 11.0
6: 6 F 11.5
7: 7 G 12.0
8: 8 H 12.5
9: 9 I 13.0
10: 10 J 13.5
11: 11 K 14.0
12: 12 L 14.5
13: 13 M 15.0
14: 14 N 15.5
15: 15 O 16.0
16: 16 P 16.5
17: 17 Q 17.0
18: 18 R 17.5
19: 19 S 18.0
20: 20 T 18.5
21: 21 U 19.0
ID Var1 Var2
私は> 100
それが停止になると、それはこれを満たすまで、最初からすべての行を報告するにtotal sum
まで行によってVar2
行の値のすべてをadd
が欲しい:例として
I I意味この場合
は、それが合計99
されるであろうID
1:9 (9.0 +9.5+10+10.5+11+11.5+12+12.5+13)
からVar2
の値の全てを加算し、次の行(13.5)を追加した場合の値は、112.5
となるであろう。
ので、予想される出力は次のようになります。
ID Var1 Var2
1: 1 A 9.0
2: 2 B 9.5
3: 3 C 10.0
4: 4 D 10.5
5: 5 E 11.0
6: 6 F 11.5
7: 7 G 12.0
8: 8 H 12.5
9: 9 I 13.0
私は別のものを試してみましたが、私には、彼らは全く役に立ちませんでした、それゆえ、私はここでそれらを含めておりません。
ありがとうございました。 'cumsum'は私が知らなかったものでした。もしあなたが可能であれば私にもお聞きしたいのですが、 'cumsum'にかかわらず、' function 'を書いてどうすればいいのか教えてください。 – Daniel
@Daniel Ok、そうです、あなたの質問。私はそれを試し、私の答えを編集します。ちょっとまってください。 –