Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unnest Google Analytics嵌套数据DPLYR_R_Dplyr_Tidyverse_Bigrquery - Fatal编程技术网

Unnest Google Analytics嵌套数据DPLYR

Unnest Google Analytics嵌套数据DPLYR,r,dplyr,tidyverse,bigrquery,R,Dplyr,Tidyverse,Bigrquery,我正在处理谷歌分析样本数据,它直接来自BigQuery 数据源-> 数据有许多嵌套列,类型为“list”。我怎样才能取消这些列的测试并对数据进行平滑分析 使用unnest()以较长的形状打开整个列,并删除列表中数据的列名。如果没有列名,很难在这样的数据上构建我的分析和viz。或者以其他方式查看列表中的列并访问它们 编辑:我希望在不丢失嵌套列名称的情况下取消嵌套列的测试 谢谢。我不能100%肯定我是否理解你的问题。当然,带有嵌套列的数据帧可能会令人不快。尽管如此,它还是显示数据的一种非常有效的方

我正在处理谷歌分析样本数据,它直接来自BigQuery

数据源->

数据有许多嵌套列,类型为“list”。我怎样才能取消这些列的测试并对数据进行平滑分析

使用unnest()以较长的形状打开整个列,并删除列表中数据的列名。如果没有列名,很难在这样的数据上构建我的分析和viz。或者以其他方式查看列表中的列并访问它们


编辑:我希望在不丢失嵌套列名称的情况下取消嵌套列的测试


谢谢。

我不能100%肯定我是否理解你的问题。当然,带有嵌套列的数据帧可能会令人不快。尽管如此,它还是显示数据的一种非常有效的方式。由于我不确定您要分析数据的哪一部分,或者data.frame中的列表是什么样子的(我不想下载数据),因此我的回答不会太具体

但也许你可以将数据简化为分析所需的变量,并相应地重塑它。。。也许是这样的

x <- dplyr::tibble(ID=c(1,2,3),
              VAR1=list(c(1,2,3,4),
                        c(3,3,3,3),
                        c(1,3,1,2))) 
# A tibble: 3 x 2
     ID VAR1     
  <dbl> <list>   
1     1 <dbl [4]>
2     2 <dbl [4]>
3     3 <dbl [4]>

lapply(seq(1,nrow(x)),function(idx){
    dplyr::as_tibble(x$VAR1[[idx]]) %>%
        dplyr::mutate(ID=x$ID[idx])}) %>%
    dplyr::bind_rows()

# A tibble: 12 x 2
   value    ID
   <dbl> <dbl>
 1     1     1
 2     2     1
 3     3     1
 4     4     1
 5     3     2
 6     3     2
 7     3     2
 8     3     2
 9     1     3
10     3     3
11     1     3
12     2     3

我用了下面的答案-

数据%>%
unnest\u wide(嵌套列,names\u sep=“”)

我希望在不丢失嵌套列名称的情况下取消嵌套列的嵌套。我尝试更新我的答案,希望它能帮助您解决问题。如果它仍然不是您想要的,也许您可以提供一些小的示例数据,更详细地说明您的问题?
# some fake data    
x <- dplyr::tibble(ID=c(1,2,3),
                       VAR1=list(c(1,2,3,4) %>% magrittr::set_names(c("A","B","C","D")),
                                 c(3,3,3,3) %>% magrittr::set_names(c("E","F","G","H")),
                                 c(1,3,1,2) %>% magrittr::set_names(c("I","J","K","L")))) 

# unnesting variable
y <- lapply(seq_len(nrow(x)), function(idx){
  dplyr::tibble(VAR1=x$VAR1[[idx]],
                ID=x$ID[idx])}) %>%
  dplyr::bind_rows()

> y$VAR1
A B C D E F G H I J K L 
1 2 3 4 3 3 3 3 1 3 1 2