【问题标题】:Problem with `tidyr`'s function `extract``tidyr` 的函数 `extract` 存在问题
【发布时间】:2021-10-01 07:47:54
【问题描述】:

我已经成功使用tidyr 的函数extract 有一段时间了,但不能再让它工作。这是一个简单的玩具箱,我想将full_name 分成First_nameSecond_name

df <- data.frame(
  full_name = c("Peter Paul", "Mike Scott")
)

但是,使用 extract 会引发错误:

library(tidyr)
df %>%
  extract(col = full_name, into = c("First_name", "Second_Name"), regex = "(.*)\\s(.*)")
Error in stopifnot(is.numeric(maxDist), maxDist >= 0, length(pattern) ==  : 
  argument "pattern" is missing, with no default

问题似乎不是由于正则表达式;我也无法让 extract 使用经过验证的正则表达式与其他数据一起运行!

【问题讨论】:

  • 您可能正在使用来自另一个包的extract。试试tidyr::extract(df, col = full_name, into = c("First_name", "Second_Name"), regex = "(.*)\\s(.*)")
  • @RonakShah stringdist::extract 重现同样的错误:D
  • 哦,好吧,所以extractdplyr内部不起作用?
  • 它有效,但我认为您的默认 extract 现在是 stringdist::extract 而不是 tidyr::extract

标签: r tidyr


【解决方案1】:

我们可以使用base R中的read.table

read.table(text = df$full_name, header = FALSE, col.names = c("First_name", "Second_name"))
  First_name Second_name
1      Peter        Paul
2       Mike       Scott

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    相关资源
    最近更新 更多