多行拆分列表[R]

时间:2017-02-11 05:37:27

标签: r list dataframe dplyr tidyr

我有一个数据框/ tibble,如下所示。

# # A tibble: 2 × 3
#       from_id             created_time      text
#         <chr>                    <chr>    <list>
# 1 10113538711 2017-02-10T23:33:01+0000 <chr [3]>
# 2 10113538711 2017-02-10T05:41:39+0000 <chr [5]>

我想将文本列中的list项分散到行上,以便它们如下所示。

# # A tibble: 2 × 3
#         from_id             created_time                                text
#           <chr>                    <chr>                               <chr>
#   1 10113538711 2017-02-10T23:33:01+0000 "earlier this week we received ..."
#   1 10113538711 2017-02-10T23:33:01+0000 "lance payne's photo struck a c..."
#   1 10113538711 2017-02-10T23:33:01+0000 "this is his story:"
#   2 10113538711 2017-02-10T05:41:39+0000 "i'm melting, but extreme heat ..."
#   2 10113538711 2017-02-10T05:41:39+0000 "place the container in an area..."
#   2 10113538711 2017-02-10T05:41:39+0000 "please share far and wide."
#   2 10113538711 2017-02-10T05:41:39+0000 "thank you."
#   2 10113538711 2017-02-10T05:41:39+0000 "photo © tanya-dee johnson"

我想尝试tidy::separate(),但这在我的使用中不起作用。我怀疑它是某种形式的分裂或分离,然后是gather()melt(),但我的R词汇让我失望。

对此的任何帮助将不胜感激。

我的反复的DPUT。

> dput(df)

structure(list(from_id = c("10113538711", "10113538711"), created_time = c("2017-02-10T23:33:01+0000", 
"2017-02-10T05:41:39+0000"), text = structure(list(c("earlier this week we received shocking photos of a turtle hatchling emerging beside a lump of coal at mackay's east point beach near hay point – the largest coal port alongside the great barrier reef.", 
"lance payne's photo struck a chord around the country.", "this is his story:"
), c("i'm melting, but extreme heat causes significant stress particularly for all animals.", 
"place the container in an area where animals are protected from predators when drinking eg near a shrub or bush and keep your pets away from this area so that animals can drink undisturbed.", 
"please share far and wide.", "thank you.", "photo © tanya-dee johnson"
)), class = c("get_sentences", "list"))), class = c("tbl_df", 
"tbl", "data.frame"), row.names = c(NA, -2L), .Names = c("from_id", 
"created_time", "text"))

1 个答案:

答案 0 :(得分:2)

我们可以使用unnest

library(tidyverse)
unnest(df)