R 从每个字符串的末尾删除特定字符
如何从数据末尾删除“/”。假设这是我的数据R 从每个字符串的末尾删除特定字符,r,R,如何从数据末尾删除“/”。假设这是我的数据 #input ID page 1 www.example.com/, ww.example.com/flight, www.example.com/flight/ 2 www.example.com/, ww.example.com/flight 我希望从那些最后一个字符中删除“/”,我的输出将是这样的 #output ID page 1 www.example.com, ww.example.com/fl
#input
ID page
1 www.example.com/, ww.example.com/flight, www.example.com/flight/
2 www.example.com/, ww.example.com/flight
我希望从那些最后一个字符中删除“/”,我的输出将是这样的
#output
ID page
1 www.example.com, ww.example.com/flight, www.example.com/flight
2 www.example.com, ww.example.com/flight
我们可以使用
gsub
,而无需周围环境。。在这里,我们删除字符串($
)末尾的/
)或,
,并将其替换为,
。在随后的子部分
中,我们删除了末尾的,
df1$page <- sub(",$", "", gsub("/($|,)", ",", df1$page))
df1$page
#[1] "www.example.com, ww.example.com/flight, www.example.com/flight"
#[2] "www.example.com, ww.example.com/flight"
一种选择:
gsub("/(?=,|$)", "", as.character(df$page), perl = TRUE)
#[1] "www.example.com, ww.example.com/flight, www.example.com/flight"
#[2] "www.example.com, ww.example.com/flight"
这将检查/
后面是否跟有逗号、
或字符串$
的结尾,如果找到了逗号,则/
将替换为”
,即将其删除。因为这是一个查找,所以我们使用perl=TRUE
其他选择(效率较低):
也许
gsub(“/(?=,|$)”,“”,as.character(df$page),perl=TRUE)
也可以看看urltools
包。它有一些处理URL的强大功能
gsub("/(?=,|$)", "", as.character(df$page), perl = TRUE)
#[1] "www.example.com, ww.example.com/flight, www.example.com/flight"
#[2] "www.example.com, ww.example.com/flight"
sapply(strsplit(as.character(df$page), ", ", fixed = TRUE), function(x) toString(sub("/$", "", x)))
#[1] "www.example.com, ww.example.com/flight, www.example.com/flight"
#[2] "www.example.com, ww.example.com/flight"