I haben ein 'Agency_Reference' Tabellenspalte 'agency_lookup' enthält, mit 200 Einträgen von Saiten, wie nachfolgend:Optimierung der R Data.table Kombination mit für Schleifenfunktion
- alpha
- beta
- gamma .. etc
ich habe einen Datenrahmen ‚TEST‘ mit einer Million Zeilen eine ‚Kampagne‘ Spalte mit Einträgen wie:
- Alpha_xt2010
- alpha_xt2014
- Beta_xt2016 etc ..
i Schleife wollen für jeden Eintrag durch in Referenztabelle und herauszufinden, welche Zeichenfolge innerhalb jeder Kampagne Spalteneinträge vorhanden ist, und erstellen Sie eine neue Spalte agency_identifier Variable in der Tabelle.
mein aktueller Code ist wie folgt und ist langsam auszuführen. Anfordern von Anleitungen zur Optimierung derselben. Ich möchte lernen, wie man es in der data.table Art und Weise zu tun
Agency_Reference <- data.frame(agency_lookup = c('alpha','beta','gamma','delta','zeta'))
TEST <- data.frame(Campaign = c('alpha_xt123','ALPHA345','Beta_xyz_34','BETa_testing','code_delta_'))
TEST$agency_identifier <- 0
for (agency_lookup in as.vector(Agency_Reference$agency_lookup)) {
TEST$Agency_identifier <- ifelse(grepl(tolower(agency_lookup), tolower(TEST$Campaign)),agency_lookup,TEST$Agency_identifier)}
Erwartete Ausgabe:
Kampagne ---- Agency_identifier
alpha_xt123 --- alpha
ALPHA34- --- alpha
Beta_xyz_34 ---- beta
BETa_testing ---- sein ta
code_delta _----- delta
zeigen Sie ein kleines reproduzierbares Beispiel und – akrun
@akrun erwartete Ausgabe: der ursprüngliche Code, den ich geschrieben hatte, Fehler hatte. Daher habe ich den Code bearbeitet, um den aktuell verwendeten Code anzuzeigen. Bitte lassen Sie mich wissen, wenn zusätzliche Informationen benötigt werden, um bei dieser Abfrage zu helfen. –
Ihr Code gibt Fehler, insbesondere die 'for'-Schleife. Was ist die erwartete Ausgabe – akrun