0
我有數據幀mydata
如下基於另一列的條件,柱除了在,使用R
ID TS TB TC
1 1.7360 -1 0
2 1.7302 -1 0.254
3 1.7244 0 0.624
4 1.7232 0 0.254
5 1.7208 0 1.25
6 1.7208 0 0
7 1.7208 0 0
8 1.7023 0 0
9 1.6814 0 0
10 1.6768 1 0
11 1.6746 0 6.25
12 1.6503 0 0.2547
13 1.6258 0 0.987
14 1.6190 0 0.3654
15 1.6154 0 0.6251
16 1.6258 0 0.369
17 1.6397 0 0
18 1.6443 0 0
19 1.6491 0 0
20 1.6503 0 0
現在我需要加/減的值的TS and TC
和帶條件創建另一個新列TSC
,如果存在那麼TSC == TS + TC
TB
列-1
直到有另一+1 or -1
在TB
,否則,如果存在則TSC == TS - TC
TB
列1
,直到有另一+1 or -1
在TB
。在B
列然後Tsc == TS +TC
列的數據幀開始時也有可能存在0
。
下面是我的最終結果
ID TS TB TC TSC
1 1.73602 -1 0 1.736020823
2 1.73023 -1 0.254 1.984238239
3 1.72445 0 0.624 2.348455656
4 1.72326 0 0.254 1.977269484
5 1.72089 0 1.25 2.970897142
6 1.72089 0 0 1.720897142
7 1.72089 0 0 1.720897142
8 1.70236 0 0 1.70236322
9 1.68145 0 0 1.681456955
10 1.67686 1 0 1.676860542
11 1.67463 0 6.25 4.575363528
12 1.65031 0 0.2547 1.395619965
13 1.62585 0 0.987 0.638855188
14 1.61903 0 0.3654 1.253634704
15 1.61547 0 0.6251 0.990376191
16 1.62585 0 0.369 1.256855188
17 1.63979 0 0 1.639792697
18 1.64438 0 0 1.64438911
19 1.64913 0 0 1.649133794
20 1.65031 0 0 1.650319965
線15看起來像TSC = TC - TS,而不是TS - TC - 是一個錯字或其他一些行爲? – Spacedman
@akrun你的解決方案只是增加值,但它不會減去'B == 1' – SBS
@akrun我不認爲這是行得通的 - 我認爲OP希望第10到20行被減去,因爲TB列切換+/-操作。是? – Spacedman