I've read through 4-5 similar questions, but their cases are different, and I couldn't figure out how to apply what I read to my case.
I have a (public) data frame where the last column is a list:
Clicking on the magnifying glass shows the following structure:
When I unnest()
, I lose the metric Names (i.e., visits
, hits
, etc.):
How can I flatten that list while keeping the metric names?
Sample data:
structure(list(fullVisitorId = c("2248281639583218707", "8647436381089107732",
"2055839700856389632", "0750846065342433129", "0573427169410921198"
), date = c("20170801", "20170801", "20170801", "20170801", "20170801"
), visitStartTime = c(1501583974L, 1501616585L, 1501583344L,
1501573386L, 1501651467L), totals = list(list(visits = 1L, hits = 1L,
pageviews = 1L, timeOnSite = NA_integer_, bounces = 1L, transactions = NA_integer_,
transactionRevenue = NA_integer_, newVisits = 1L, screenviews = NA_integer_,
uniqueScreenviews = NA_integer_, timeOnScreen = NA_integer_,
totalTransactionRevenue = NA_integer_, sessionQualityDim = 1L),
list(visits = 1L, hits = 1L, pageviews = 1L, timeOnSite = NA_integer_,
bounces = 1L, transactions = NA_integer_, transactionRevenue = NA_integer_,
newVisits = 1L, screenviews = NA_integer_, uniqueScreenviews = NA_integer_,
timeOnScreen = NA_integer_, totalTransactionRevenue = NA_integer_,
sessionQualityDim = 1L), list(visits = 1L, hits = 1L,
pageviews = 1L, timeOnSite = NA_integer_, bounces = 1L,
transactions = NA_integer_, transactionRevenue = NA_integer_,
newVisits = 1L, screenviews = NA_integer_, uniqueScreenviews = NA_integer_,
timeOnScreen = NA_integer_, totalTransactionRevenue = NA_integer_,
sessionQualityDim = 1L), list(visits = 1L, hits = 1L,
pageviews = 1L, timeOnSite = NA_integer_, bounces = 1L,
transactions = NA_integer_, transactionRevenue = NA_integer_,
newVisits = 1L, screenviews = NA_integer_, uniqueScreenviews = NA_integer_,
timeOnScreen = NA_integer_, totalTransactionRevenue = NA_integer_,
sessionQualityDim = 1L), list(visits = 1L, hits = 1L,
pageviews = 1L, timeOnSite = NA_integer_, bounces = 1L,
transactions = NA_integer_, transactionRevenue = NA_integer_,
newVisits = NA_integer_, screenviews = NA_integer_, uniqueScreenviews = NA_integer_,
timeOnScreen = NA_integer_, totalTransactionRevenue = NA_integer_,
sessionQualityDim = 1L))), row.names = c(NA, -5L), class = c("tbl_df",
"tbl", "data.frame"))