我正在尝试在r中的用户定义函数中使用str_replace_all,以用空格替换数据框中某列中字母“ T”的所有实例。该函数还删除每个字符串中的最后一个字母。
对于以下数据,当通过列df$code
时,这会将第一个表转换为第二个表:
id code
1 STWX
2 STVX
3 RTUX
id code
1 S W
2 S V
3 R U
我尝试使用以下内容:
str_convert <- function(x) {
str_replace_all(x, 'T', ' ')
substr(x,1,nchar(x)-1)
}
但是,我得到的输出不会删除'T',因此最终输出看起来像这样:
id code
1 STW
2 STV
3 RTU
我犯了一个明显的错误吗?任何帮助表示赞赏。
答案 0 :(得分:1)
尝试这个
str_convert <- function(x) {
r <- str_replace_all(x, 'T', ' ')
r <- substr(r,1,nchar(r)-1)
return(r)
}
df1 %>%
mutate(res = str_convert(code))
id code res
1 1 STWX S W
2 2 STVX S V
3 3 RTUX R U
答案 1 :(得分:1)
和tidyverse解决方案:
sequelize.define(...
这会将来自str_replace_all的输出作为str_sub的第一个参数转发,其结果随后由函数返回。 str_sub也可以具有负的停止值(从末尾开始倒数),在此很方便。