使用unnest_tokens()按特定字符拆分列?

时间:2017-12-05 18:22:01

标签: r tidytext

我正在使用一列格式为字符串的网址向量,每个网址用逗号分隔:

column_with_urls

[“url.a,url.b,url.c”]

[“url.d,url.e,url.f”]

我想使用tidytext::unnest_tokens() R函数将这些函数分成每行一个url(尽管我对其他优选的基于R的解决方案持开放态度)。我已经阅读了文档here,但我无法确定是否可以/建议输入单个字符进行拆分。

我的想法就像unnest_tokens(url, column_with_urls, by = ',')。有没有办法指定那种论点和/或更好的方法来解决这个问题?

我想要的输出是一个数据帧,每行有一个url(原始行的所有其他数据都复制到每一行):

URL

url.a

url.b

url.c

...

提前致谢。

1 个答案:

答案 0 :(得分:4)

unnest_tokens函数可以选择拆分正则表达式模式。下面是使用此选项在逗号上拆分的示例语法(您也可以将其用于更复杂的模式)。

请注意,这会将输入数据的类转换为tibble

my_df = data.frame(id=1:2, urls=c("url.a, url.b, url.c",
                                  "url.d, url.e, url.f"))
tidytext::unnest_tokens(my_df, out, urls, token = 'regex', pattern=",")
# # A tibble: 6 × 2
#     id    out
#   <int>  <chr>
# 1     1  url.a
# 2     1  url.b
# 3     1  url.c
# 4     2  url.d
# 5     2  url.e
# 6     2  url.f