Вычисление разницы, которая начинается заново, когда чередуется двухуровневый коэффициент

Вы можете найти документацию в формате файла collada в Kronos Group .

Blender использует библиотеку OpenCollada для импорта и экспорта файлов collada.

Если вы хотите начать с чего-то более легкого, вы можете взглянуть на экспортера collada , сделанного разработчиками движка игры Godot.

3
задан Scolopax 23 January 2019 в 19:22
поделиться

1 ответ

ОП запросил

рассчитать разницу, а затем в конечном итоге кумулятивную сумму разностей переменной. Расчеты [...] необходимо начинать заново, когда коэффициент чередуется взад-вперед.

Вычисление различий

Функцию rleid() из пакета можно использовать для выявления изменений в ant:

library(data.table)
setDT(test)[, diff := c(0, diff(x)), by = rleid(ant)]
test
       x ant diff
 1: 1.64   n 0.00
 2: 2.54   n 0.90
 3: 3.53   s 0.00
 4: 3.82   s 0.29
 5: 4.28   s 0.46
 6: 4.74   s 0.46
 7: 4.86   n 0.00
 8: 5.11   s 0.00
 9: 5.53   s 0.42
10: 5.95   n 0.00
11: 6.38   s 0.00
12: 6.73   n 0.00
13: 7.40   s 0.00
14: 8.51   s 1.11
15: 8.52   s 0.01
16: 8.57   n 0.00
17: 8.91   s 0.00
18: 9.33   n 0.00
19: 9.57   s 0.00
20: 9.83   s 0.26

Или, используя shift():

setDT(test)[, diff := x - shift(x, fill = x[1]), by = rleid(ant)]

Вычисление совокупных сумм напрямую

Если я правильно понимаю, вычисление Различия подразумевались только в качестве промежуточного шага к окончательному вычислению совокупных сумм, которые необходимо начинать заново, когда коэффициент чередуется взад-вперед .

Это может быть сделано непосредственно, потому что совокупная сумма разностей x равна x минус первое значение x для каждой серии идентичных значений ant:

setDT(test)[, cumsum := x - x[1L], by = rleid(ant)]
test
< blockquote>
       x ant diff cumsum
 1: 1.64   n 0.00   0.00
 2: 2.54   n 0.90   0.90
 3: 3.53   s 0.00   0.00
 4: 3.82   s 0.29   0.29
 5: 4.28   s 0.46   0.75
 6: 4.74   s 0.46   1.21
 7: 4.86   n 0.00   0.00
 8: 5.11   s 0.00   0.00
 9: 5.53   s 0.42   0.42
10: 5.95   n 0.00   0.00
11: 6.38   s 0.00   0.00
12: 6.73   n 0.00   0.00
13: 7.40   s 0.00   0.00
14: 8.51   s 1.11   1.11
15: 8.52   s 0.01   1.12
16: 8.57   n 0.00   0.00
17: 8.91   s 0.00   0.00
18: 9.33   n 0.00   0.00
19: 9.57   s 0.00   0.00
20: 9.83   s 0.26   0.26
0
ответ дан Uwe 23 January 2019 в 19:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: