首页 > 解决方案 > 如果最后一个字符是 [],则有条件地从数组中删除

问题描述

我正在尝试从页面获取所有股票代码/缩写。但是当我抓取页面时,会出现一些不需要的代码,基本上它们都以For结尾,(space)例如"BDLL4F "or "QCOM34F"。我设法使用 gsub() 和正则表达式删除它们。

stocktickers = c("PETR4", "VALE3", "MDNE3", "BDLL4F ", "QCOM34F", "SANB11", "USIM5")
stocktickers = gsub("(.*[ F]$)","NULL",stocktickers)
stocktickers = stocktickers[stocktickers!="NULL"] 

> stocktickers
[1] "PETR4"  "VALE3"  "MDNE3"  "SANB11" "USIM5" 

如果值以指定的字符或整数开头或结尾,是否有任何函数可以有条件地从数组中删除字符串?

标签: r

解决方案


您可以使用正则表达式删除不需要的代码。

例如,使用grep

stocktickers = c("PETR4", "VALE3", "MDNE3","BDLL4F ","QCOM34F", "SANB11","USIM5")
grep("(F|\\s)$",stocktickers, value = TRUE, invert = TRUE)
#[1] "PETR4"  "VALE3"  "MDNE3"  "SANB11" "USIM5" 

这将删除以空格或空格stocktickers结尾的值。"F"


推荐阅读