【发布时间】:2024-01-20 16:11:01
【问题描述】:
我是R 的新手,专门编程function。所以,如果您能帮助理解这些概念,我将不胜感激。
我想知道如何编写function 来执行以下操作:
1-add某些variable(列)line by line (row by row)和
的值
2- 那么如果sum 的值大于100; >100
3- 然后,stop 并报告所有行从乞讨到满足条件(总和
举个例子:
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
我想逐行 add Var2 中的所有值,直到 total sum 变为 > 100 然后它会停止并从头开始报告所有行,直到它满足此条件。
在这种情况下,我的意思是,它将 Var2 中的所有值从 ID 1:9 (9.0 +9.5+10+10.5+11+11.5+12+12.5+13) 中添加,总数将为 99,如果添加下一行 (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
我尝试了不同的东西,但对我来说它们根本没有用,因此,我在这里不包括它们。
【问题讨论】:
标签: r function loops if-statement datatable