Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # tidyr::hoist()
- x %>%
- filter(activityType == 'ECOMMERCE') %>%
- select(id, sessionId, activityTime, activityType, ecommerce, customDimension) %>%
- hoist(ecommerce,
- action_type = c('actionType'),
- transaction_id = c('transaction', 'transactionId'),
- transaction_revenue = c('transaction', 'transactionRevenue'),
- products = 'products',
- ecommerce_type = 'ecommerceType') %>%
- unnest_longer(products) %>% unnest_wider(products) %>%
- filter(!is.na(transaction_id)) %>%
- select(-ecommerce, -customDimension)
- # map inside mutate
- x %>%
- filter(activityType == "ECOMMERCE") %>%
- select(id, sessionId, activityTime, ecommerce) %>%
- mutate(transaction = map(ecommerce, "transaction"),
- transactionRevenue = map_dbl(transaction, ~.[["transactionRevenue"]] %||% NA),
- transactionId = map_chr(transaction, ~.[["transactionId"]] %||% NA)) %>%
- filter(!is.na(transactionRevenue)) %>%
- mutate(actionType = map_chr(ecommerce, ~.[['actionType']] %||% NA),
- products = map(ecommerce, 'products')) %>%
- unnest(products) %>%
- mutate(productSku = map_chr(products, ~.[['productSku']]),
- productName = map_chr(products, ~.[['productName']]),
- itemRevenue = map_chr(products, ~.[['itemRevenue']]) %>% as.numeric(),
- productQuantity = map_chr(products, ~.[['productQuantity']]) %>% as.numeric()) %>%
- select(-transaction, -ecommerce, -products)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement