R 如何在一个函数中编写同一列的多个转换?
我有一个数据帧:R 如何在一个函数中编写同一列的多个转换?,r,dataframe,stringr,R,Dataframe,Stringr,我有一个数据帧: ID value 1 he following object is masked from ‘package:purrr’ 2 Attaching package: ‘magrittr’ 3 package ‘ggplot2’ was built under R version 3.6.2 4 Warning messages: 以下是转换列值的代码: df <- df %>% mutate(value =
ID value
1 he following object is masked from ‘package:purrr’
2 Attaching package: ‘magrittr’
3 package ‘ggplot2’ was built under R version 3.6.2
4 Warning messages:
以下是转换列值的代码:
df <- df %>%
mutate(value = stringr::str_replace(value, '(^he following object)', '\\1'),
value = stringr::str_replace(value, '(^Attaching package:)', '\\1'),
value = stringr::str_replace(value, '(^package ‘ggplot2’)', '\\1'))
) %>%
group_by(ID, value)
正如您所看到的,我对一列使用stringr::str_替换多次。我的实际数据要大得多(比如数百万行)。这只是一个子集示例。那么,我如何将这三次结合起来,一次使用这一功能呢?我想使用相同的函数和库(没有根本性的改变)如果我正确理解了这个问题,使用管道操作符
|
将代码中的str\u replace
替换为str\u replace\u all
,可以避免在不同的行中多次调用str\u replace
例如:
table_patterns%
mutate(value=str_replace_all(value,“(^he following object)|”(^Attaching package:)|(^package'ggplot2'),“\\1'))%>%
分组依据(ID、值)
谢谢,可以用str_start()函数实现吗?根据文档,是的,它看起来基本上执行了与您在这里尝试执行的相同的正则表达式。除了这个特定的用例之外,我还想给你一个通用的模式。你能展示一下str_start()的样子吗?
ID value
1 he following object
2 Attaching package:
3 package ‘ggplot2’
4 Warning messages:
table_patterns <- table %>%
mutate(value = str_replace_all(value, "(^he following object)|(^Attaching package:)|(^package ‘ggplot2’)", '\\1')) %>%
group_by(ID, value)