以下是我的示例數據框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