У меня есть простая таблица:
ID|Value
1|10
1|20
1|-5
2|25
3|2
3|15
4|8
5|18
6|33
6|5
6|50
Фактически Я использую этот код:
for (row in 1:nrow(Table)) {
ID <- Table[row, 1]
Value <- Table[row, 2]
if ( oldID == ID) {
currentValue <- currentValue * ((100 - Value)/100) }
else {
addrow <- data.frame(oldID, currentValue)
PriceRR <- rbind(PriceRR, addrow)
oldID <- ID
currentValue <- 100 - Value
}
}
Чтобы назначить скидку для более позднего значения DAX в Power BI.
Но он чертовски медленный. Поэтому я хочу распараллелить его.
daply может сделать эту работу. Но я не знаю, как это работает.
Итак, в основном то, что мне нужно.
Разделить таблицу на наборы по группе идентификаторов.
Set1 1,10 1,20 1,5
Set2 2,25
Set3 3,2 3,15
.
.
.
Применить функцию к Устанавливает параллельно.
First call of function in set, initialize currentValue <- 100
после
currentValue <- currentValue * ((100 - Value)/100)
For Set1.1 90 <- 100 * ((100 - 10)/100)
For Set1.2 72 <- 90 * ((100 - 20)/100)
For Set1.3 68,4 <- 72 * ((100 - 5)/100)
It should return ID=1 Value=68,4
Мне нужно знать, можно ли сделать переменную постоянной в памяти на время выполнения функции набора, если она живет?
Будет ли daply или другая функция создавать новый рабочий поток, чтобы применить его к набору?
Я новичок в R и должен сразу перейти к внутренней работе среды R. : -)
Свен