gsub 和 %>% 可以一起工作吗
can gsub and %>% work together
想知道我们可以一起使用 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)
似乎不是 work.also 如果有一个 df 并且有一个名为 t 的列,里面的数据相同
df$t%>%gsub('\(','',df$t) %>%gsub('\)','',df$t)
还是不行。
有人给个建议吗?
这个有效
t<-gsub('\(','',t)
t<-gsub('\)','',t)
或者您可以一次性替换两个表达式:
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)
形式的正则表达式模式匹配 a
或 b
。
假设您要在下一步中提取条目,然后您可以使用 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
我们可以把括号放在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)
这将在您添加 {}
时起作用,对于第二个管道调用 gsub
应该使用 .
而不是 t
t %>%{gsub('\(','',t)} %>%{gsub('\)','',.)}
[1] "66.8309216,20.3991966" "65.3337311,16.5161694" "63.4276473,17.7292444" "63.1711922,14.9591800" "61.3011993,16.1534214" "61.0917012,14.6663653"
想知道我们可以一起使用 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)
似乎不是 work.also 如果有一个 df 并且有一个名为 t 的列,里面的数据相同
df$t%>%gsub('\(','',df$t) %>%gsub('\)','',df$t)
还是不行。 有人给个建议吗?
这个有效
t<-gsub('\(','',t)
t<-gsub('\)','',t)
或者您可以一次性替换两个表达式:
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)
形式的正则表达式模式匹配 a
或 b
。
假设您要在下一步中提取条目,然后您可以使用 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
我们可以把括号放在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)
这将在您添加 {}
时起作用,对于第二个管道调用 gsub
应该使用 .
而不是 t
t %>%{gsub('\(','',t)} %>%{gsub('\)','',.)}
[1] "66.8309216,20.3991966" "65.3337311,16.5161694" "63.4276473,17.7292444" "63.1711922,14.9591800" "61.3011993,16.1534214" "61.0917012,14.6663653"