Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.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/1/list/4.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
dataframe列中的Dataframes_R_List_Dplyr_Purrr - Fatal编程技术网

dataframe列中的Dataframes

dataframe列中的Dataframes,r,list,dplyr,purrr,R,List,Dplyr,Purrr,我有dataframe_A,其中有一列,其中每一行都包含一个dataframe 下面是我所说的数据帧的dput: structure(list(spend = c("840.99", "1145.39", "1043.88", "1169.15", "1249.75", "1197.57"), actions = list(structure(list(action_type = c("like", "link_click", "post", "post_reaction", "page_

我有dataframe_A,其中有一列,其中每一行都包含一个dataframe

下面是我所说的数据帧的dput:

structure(list(spend = c("840.99", "1145.39", "1043.88", "1169.15", 
"1249.75", "1197.57"), actions = list(structure(list(action_type = c("like", 

"link_click", "post", "post_reaction", "page_engagement", "post_engagement"
), value = c("18", "205", "2", "28", "253", "235")), .Names = 
c("action_type", 
"value"), class = "data.frame", row.names = c(NA, 6L)), structure(list(
action_type = c("like", "link_click", "post", "post_reaction", 
"page_engagement", "post_engagement"), value = c("26", "268", 
"3", "33", "330", "304")), .Names = c("action_type", "value"
), class = "data.frame", row.names = c(NA, 6L)), structure(list(
action_type = c("like", "link_click", "post", "post_reaction", 
"page_engagement", "post_engagement"), value = c("16", "214", 
"2", "28", "260", "244")), .Names = c("action_type", "value"
), class = "data.frame", row.names = c(NA, 6L)), structure(list(
action_type = c("comment", "like", "link_click", "post", 
"post_reaction", "page_engagement", "post_engagement"), value = c("2", 
"14", "255", "2", "44", "317", "303")), .Names = c("action_type", 
"value"), class = "data.frame", row.names = c(NA, 7L)), structure(list(
action_type = c("comment", "like", "link_click", "post", 
"post_reaction", "page_engagement", "post_engagement"), value = c("1", 
"15", "240", "1", "23", "280", "265")), .Names = c("action_type", 
"value"), class = "data.frame", row.names = c(NA, 7L)), structure(list(
action_type = c("like", "link_click", "post", "post_reaction", 
"page_engagement", "post_engagement"), value = c("16", "252", 
"3", "32", "303", "287")), .Names = c("action_type", "value"
), class = "data.frame", row.names = c(NA, 6L))), date_start = c("2017-10-31", 
"2017-11-01", "2017-11-02", "2017-11-03", "2017-11-04", "2017-11-05"
)), .Names = c("spend", "actions", "date_start"), class = c("data.table", 
"data.frame"), row.names = c(NA, -6L), .internal.selfref = <pointer: 
0x0000000000310788>) 
您可以看到,每个数据帧对应于原始数据帧中的一行。如何提取这些数据帧并使行名成为将附加到原始数据帧的新列。我希望我的最终结果是这样的(当我这样做的时候,格式很奇怪,所以我不能写最后3列,但这些也应该填充):

任何帮助都会很好,谢谢

也许这种方法:

library(tidyverse) 

   z1 %>%
      as.tibble() %>%
      unnest() %>%
      spread(action_type, value) #convert to wide format
#output
  spend   date_start comment like  link_click page_engagement post  post_engagement post_reaction
* <chr>   <chr>      <chr>   <chr> <chr>      <chr>           <chr> <chr>           <chr>        
1 1043.88 2017-11-02 NA      16    214        260             2     244             28           
2 1145.39 2017-11-01 NA      26    268        330             3     304             33           
3 1169.15 2017-11-03 2       14    255        317             2     303             44           
4 1197.57 2017-11-05 NA      16    252        303             3     287             32           
5 1249.75 2017-11-04 1       15    240        280             1     265             23           
6 840.99  2017-10-31 NA      18    205        253             2     235             28   

您的
dput
表明您有一个data.table;你使用了
data.table::fread
还是什么?我想是这样的!我来测试一下。谢谢我尝试使用相同格式的不同数据集执行此操作,但它出现了一个错误,即:
错误:每列必须是向量列表或数据帧列表[操作]
找到了发生这种情况的原因,但不确定如何解决它。有一个
actions
行的
NULL
值。有没有办法让
unnest
函数解释这个问题?如果有人感兴趣,这是处理NULL的一个很好的资源:@Nick Knauer我很高兴你找到了一个解决方案。向你致以亲切的问候。
df$actions
[[1]]
      action_type value
1            like    18
2      link_click   205
3            post     2
4   post_reaction    28
5 page_engagement   253
6 post_engagement   235

[[2]]
      action_type value
1            like    26
2      link_click   268
3            post     3
4   post_reaction    33
5 page_engagement   330
6 post_engagement   304

[[3]]
      action_type value
1            like    16
2      link_click   214
3            post     2
4   post_reaction    28
5 page_engagement   260
6 post_engagement   244

[[4]]
      action_type value
1         comment     2
2            like    14
3      link_click   255
4            post     2
5   post_reaction    44
6 page_engagement   317
7 post_engagement   303

[[5]]
      action_type value
1         comment     1
2            like    15
3      link_click   240
4            post     1
5   post_reaction    23
6 page_engagement   280
7 post_engagement   265

[[6]]
      action_type value
1            like    16
2      link_click   252
3            post     3
4   post_reaction    32
5 page_engagement   303
6 post_engagement   287
     spend      actions date_start    comment    like   link_click    post    post_reaction    page_engagement     post_engagement   
1:  840.99 <data.frame> 2017-10-31          0      18          205       2 
2: 1145.39 <data.frame> 2017-11-01          0      26          268       3              
3: 1043.88 <data.frame> 2017-11-02          0      16          214       2                  
4: 1169.15 <data.frame> 2017-11-03          2      14          255       2                          
5: 1249.75 <data.frame> 2017-11-04          1      15          240       1                             
6: 1197.57 <data.frame> 2017-11-05          0      16          252       3  
t(df$actions[[1]])
library(tidyverse) 

   z1 %>%
      as.tibble() %>%
      unnest() %>%
      spread(action_type, value) #convert to wide format
#output
  spend   date_start comment like  link_click page_engagement post  post_engagement post_reaction
* <chr>   <chr>      <chr>   <chr> <chr>      <chr>           <chr> <chr>           <chr>        
1 1043.88 2017-11-02 NA      16    214        260             2     244             28           
2 1145.39 2017-11-01 NA      26    268        330             3     304             33           
3 1169.15 2017-11-03 2       14    255        317             2     303             44           
4 1197.57 2017-11-05 NA      16    252        303             3     287             32           
5 1249.75 2017-11-04 1       15    240        280             1     265             23           
6 840.99  2017-10-31 NA      18    205        253             2     235             28   
> dput(z1)
structure(list(spend = c("840.99", "1145.39", "1043.88", "1169.15", 
"1249.75", "1197.57"), actions = list(structure(list(action_type = c("like", 
"link_click", "post", "post_reaction", "page_engagement", "post_engagement"
), value = c("18", "205", "2", "28", "253", "235")), .Names = c("action_type", 
"value"), class = "data.frame", row.names = c(NA, 6L)), structure(list(
    action_type = c("like", "link_click", "post", "post_reaction", 
    "page_engagement", "post_engagement"), value = c("26", "268", 
    "3", "33", "330", "304")), .Names = c("action_type", "value"
), class = "data.frame", row.names = c(NA, 6L)), structure(list(
    action_type = c("like", "link_click", "post", "post_reaction", 
    "page_engagement", "post_engagement"), value = c("16", "214", 
    "2", "28", "260", "244")), .Names = c("action_type", "value"
), class = "data.frame", row.names = c(NA, 6L)), structure(list(
    action_type = c("comment", "like", "link_click", "post", 
    "post_reaction", "page_engagement", "post_engagement"), value = c("2", 
    "14", "255", "2", "44", "317", "303")), .Names = c("action_type", 
"value"), class = "data.frame", row.names = c(NA, 7L)), structure(list(
    action_type = c("comment", "like", "link_click", "post", 
    "post_reaction", "page_engagement", "post_engagement"), value = c("1", 
    "15", "240", "1", "23", "280", "265")), .Names = c("action_type", 
"value"), class = "data.frame", row.names = c(NA, 7L)), structure(list(
    action_type = c("like", "link_click", "post", "post_reaction", 
    "page_engagement", "post_engagement"), value = c("16", "252", 
    "3", "32", "303", "287")), .Names = c("action_type", "value"
), class = "data.frame", row.names = c(NA, 6L))), date_start = c("2017-10-31", 
"2017-11-01", "2017-11-02", "2017-11-03", "2017-11-04", "2017-11-05"
)), .Names = c("spend", "actions", "date_start"), class = c("data.table", 
"data.frame"), row.names = c(NA, -6L))