【发布时间】:2023-12-11 03:17:01
【问题描述】:
我已经阅读了 4-5 个类似的问题,但他们的案例不同,我不知道如何将我阅读的内容应用到我的案例中。
我有一个(公共)数据框,其中最后一列是一个列表:
当我unnest() 时,我会丢失度量名称(即visits、hits 等):
如何在保留指标名称的同时展平该列表?
样本数据:
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"))
【问题讨论】:
-
cbind(df[-4], do.call(rbind.data.frame, df$totals))呢? -
谢谢@RuiBarradas!这在样本数据上效果很好,但有更快的选择吗?实际数据有数百万行 =\.
标签: r list dataframe tidyr flatten