Har skrivit om codify men sparat originalet som codify2,
Nya versionen har enklare kod och bygger på data.table.
Resultaten blir inte exakt lika. Skiljer sig på ss att gamla vertsionen exkluderade koder utanför angiven period om det samtidigt fasnns koder för samma patient inom perioden. Vet dock inte om detta steg är nödvändigt, Vi kan visserligen reducera dataramens storlek men det blir ett extra beräkningssteg och vi kan inte radera rader via referens, vilket innebär kopia.
Just nu modifierar codify dataramen via referens men jag bör nog ta en kopia via "copy" i början av funktionen för att undvika detta beteende. Eller ev införa ett argument som kan styra detta. Ibland kanske vi kan leva med sidoeffekten om det samtidigt ninebär att vi kan hantera riktigt stora datamängder. Kanske använda samma argument till att styra ev indexering av dataramen. Fördel att det går snabbare men nackdel att sorteringsordningen ändras. T ex kalla argumenet "fast" för en trade-off mellan snabbhet och minneseffektivitet.
Kod för att jämföra de båda versionerna (som just nu alltså inte är identical). Observera också att codify och codify 2 alltså måste anropas i denna ordning till följd av ändringen by referens.:
y <- as.data.table(codify2(classifyr::ex_people, classifyr::ex_icd10, id = "name", date = "surgery", days = c(-365, 0)))[order(name)]
x <- codify(classifyr::ex_people, classifyr::ex_icd10, id = "name", date = "surgery", days = c(-365, 0))
head(y)
head(x)
identical(x, y)
Har skrivit om codify men sparat originalet som codify2, Nya versionen har enklare kod och bygger på data.table. Resultaten blir inte exakt lika. Skiljer sig på ss att gamla vertsionen exkluderade koder utanför angiven period om det samtidigt fasnns koder för samma patient inom perioden. Vet dock inte om detta steg är nödvändigt, Vi kan visserligen reducera dataramens storlek men det blir ett extra beräkningssteg och vi kan inte radera rader via referens, vilket innebär kopia.
Just nu modifierar codify dataramen via referens men jag bör nog ta en kopia via "copy" i början av funktionen för att undvika detta beteende. Eller ev införa ett argument som kan styra detta. Ibland kanske vi kan leva med sidoeffekten om det samtidigt ninebär att vi kan hantera riktigt stora datamängder. Kanske använda samma argument till att styra ev indexering av dataramen. Fördel att det går snabbare men nackdel att sorteringsordningen ändras. T ex kalla argumenet "fast" för en trade-off mellan snabbhet och minneseffektivitet.
Kod för att jämföra de båda versionerna (som just nu alltså inte är identical). Observera också att codify och codify 2 alltså måste anropas i denna ordning till följd av ändringen by referens.: