【问题标题】:using select and stringr together一起使用 select 和 stringr
【发布时间】:2020-07-12 21:15:22
【问题描述】:

我在努力

qual %>% select(reasons_code) %>% str_replace('\\+.*',replacement = '')

但我收到警告消息:In stri_replace_first_regex(string, pattern, fix_replacement(replacement), : argument is not an atomic vector; coercing.

但是,当我执行以下操作时,替换工作正常。

str_replace(qual$reasons_code,'\\+.*',replacement = '')

有人知道为什么会这样吗?

【问题讨论】:

  • 试试qual %>% pull(reasons_code) %>% str_replace('\\+.*',replacement = '')

标签: r dplyr tidyverse stringr


【解决方案1】:

对于?str_replace,输入string

string - 输入向量。可以是字符向量,也可以是可以强制转换为字符向量的东西。

select 的输出是 data.frame 并选择了单个列。它不会转换为vector。代替select,我们可以将pull 列为vector,它应该可以工作

library(dplyr)
qual %>%
      pull(reasons_code) %>%
      str_replace('\\+.*',replacement = '')

或者,如果我们更喜欢将 OP 的代码与 select 一起使用,有几种方法可以转换为 vector - unlist 就是其中之一

qual %>% 
    select(reasons_code) %>% 
    unlist %>%
    str_replace('\\+.*',replacement = '')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-26
    相关资源
    最近更新 更多