以下是我的示例数据框df
,其中包含许多变量,其中C
是其中一个变量中列的长度。R中的递减乘法
ID C
1 0
2 1.47349678
3 0
4 0
5 0
6 0
7 0
8 0
9 0
10 0
11 0
12 0
13 0
14 0
16 1.987
17 0
18 0
19 0
20 0
21 0
22 0
23 0
24 0
25 0
26 0
27 0
我需要创建另一个变量C_C
其中它由C
产物和递减因子的0.1。
必须仅对C_C
的值的计数10
进行乘法运算,其值为C
,而不是0
。结果也必须从下一个数据点存储。即如果C !=0
在Id ==2
,则产品必须从ID==3
如果有非零数字后不到10
连续零将计数只是重置为C
新的值存储找到,如果发现没有进一步的数据乘法将停止。
预期结果
ID C C_C
1 0 0
2 1.47349678 0
3 0 1.47349678
4 0 1.326147102
5 0 1.178797424
6 0 1.031447746
7 0 0.884098068
8 0 0.73674839
9 0 0.589398712
10 0 0.442049034
11 0 0.294699356
12 0 0.147349678
13 0 0
14 0 0
16 1.987 0
17 0 1.987
18 0 1.7883
19 0 1.5896
20 0 1.3909
21 0 1.1922
22 0 0.9935
23 0 0.7948
24 0 0.5961
25 0 0.3974
26 0 0.1987
27 0 0
从所需的结果观察
1.价值C
这是不0
是enocunter在ID = 2
,因此产品被从ID == 3
即C_C3
存储。
2. C_C3 == C2 * 1
,C_C4 == C2*0.9
,C_C5 == C2 * 0.8
...... C_C12 == C*0.1
, C_C13 == C2 *0
。
3.同样C_C17 == C16 * 1
,C_C18 == C16*0.9
,C_C19 == C16 *0.8
,... C_C26 == C16 *0.1
,C_C27 == C16*0
谢谢!
如果在一个非零数字之后连续的零点少于10个,计数值才会重置? –
@RonakShah是的,我忘了提到这一点。计数应重置“C”的新值以进行乘法运算。 – Tareva