可以gsub和%>%一起工作

时间:2018-05-03 13:41:35

标签: r gsub

想知道我们可以一起使用pipe get gsub吗?好像我不能

t <- c("(66.8309216,20.3991966)","(65.3337311,16.5161694)","(63.4276473,17.7292444)","(63.1711922,14.9591800)",
"(61.3011993,16.1534214)","(61.0917012,14.6663653)")
t%>%gsub('\\(','',t) %>%gsub('\\)','',t)

似乎不起作用。如果有一个df并且有一个名为t的列,

中有相同的数据
df$t%>%gsub('\\(','',df$t) %>%gsub('\\)','',df$t)

仍然无效。 有人提出建议吗?

这有效

t<-gsub('\\(','',t)
t<-gsub('\\)','',t)

3 个答案:

答案 0 :(得分:1)

或者你可以一次性替换两个表达式:

gsub("(\\(|\\))", "", t);
#[1] "66.8309216,20.3991966" "65.3337311,16.5161694" "63.4276473,17.7292444"
#[4] "63.1711922,14.9591800" "61.3011993,16.1534214" "61.0917012,14.6663653"

说明:(a|b)形式的正则表达式模式匹配ab

假设您要在下一步中提取条目,则可以使用read.csv自动使用data.frame中的条目填充t

read.csv(text = gsub("(\\(|\\))", "", t), header = F);
#        V1       V2
#1 66.83092 20.39920
#2 65.33373 16.51617
#3 63.42765 17.72924
#4 63.17119 14.95918
#5 61.30120 16.15342
#6 61.09170 14.66637

答案 1 :(得分:1)

我们可以将括号放在gsub的方括号内以删除

gsub("[()]", "", t)
#[1] "66.8309216,20.3991966" "65.3337311,16.5161694" "63.4276473,17.7292444"
#[4] "63.1711922,14.9591800" "61.3011993,16.1534214" "61.0917012,14.6663653"

如果括号是开头和结尾字符,那么也可以使用substr方法

substr(t, 2, nchar(t)-1)

答案 2 :(得分:1)

当您添加<div id="content" class="content content-full" style="margin-top: -40px;"> <iframe style='overflow-y:hidden; width:100%; height:17560px' src="annotated list of courses.html" frameborder="0" width="100%" height="17560px" type="text/html"> </iframe> </div> 时,这也适用于管道调用{}应该使用gsub代替.

t