gpt4 book ai didi

r - gsub ) 仅当没有 (

转载 作者:行者123 更新时间:2023-12-05 08:47:10 27 4
gpt4 key购买 nike

我在 R 中工作,并且仅在没有左括号时才尝试删除右括号。我在下面尝试过,但没有返回所需的输出。

test <- data.frame(t1 = c("Book (Pg 1)", "Website Online)", "Journal: 2018)"))
test

test$t2 <- ifelse(str_contains(test$t1, "("), test$t1, gsub("(", '', test$t1))

我希望将 test$t2 返回为“Book (Pg1)”、“Website Online”、“Journal: 2018”

最佳答案

您不小心在 中使用了左括号 ("(") 而不是右括号 (")") gsub()。此外,由于 () 是正则表达式元字符,您需要使用双字符转义它们两次(一次用于 R 字符串,一次用于正则表达式)反斜杠 ("\\").

使用向量化的 grepl 作为 base 解决方案,我们得到:

test$t2 <- ifelse(grepl("\\(", test$t1), test$t1, gsub("\\)", "", test$t1))

这会为 test 产生以下输出:

               t1             t2
1 Book (Pg 1) Book (Pg 1)
2 Website Online) Website Online
3 Journal: 2018) Journal: 2018

关于r - gsub ) 仅当没有 (,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68216818/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com