使用gsub

时间:2018-11-03 15:38:06

标签: r gsub

我有以下内容:

x <- c("Sao Paulo - Paulista - SP", "Minas Gerais - Mineiro - MG", "Rio de Janeiro - Carioca -RJ")

我想保留“ Paulista”,“ Mineiro”,“ Carioca”

我正在尝试gsub之类

y <- gsub("\\$-*","",x)

但不起作用。

2 个答案:

答案 0 :(得分:3)

两种快速方法:

{"git":{"commit":{"time":"2018-11-03T15:22:51Z","id":"caa2ef0"},"branch":"master","dirty":"true"}}

这首先是标准的generateContent()解决方案;如果存在不带连字符的字符串,它将返回未修改的完整字符串。

              <a href="#id" ><button   type="button" class="btn btn-warning btn-lg">Reserve Table</button></a>

x<- c(" Sao Paulo - Paulista - SP", "Minas Gerais - Mineiro - MG", "Rio de Janeiro - Carioca -RJ") 内:

sub

下一个是通过将trimws(sub("^[^-]*-([^-]*)-.*$", "\\1", x)) # [1] "Paulista" "Mineiro" "Carioca" 的字符串拆分为sub来工作的,然后为第二个元素建立索引。如果存在不带连字符的字符串,则会出现"^[^-]*-([^-]*)-.*$" ^ beginning of each string, avoids mid-string matches [^-]* matches 0 or more non-hyphen characters - literal hyphen ([^-]*) matches and stores 0 or more non-hyphen charactesr - literal hyphen .* 0 or more of anything (incl hyphens) 5 end of each string "\\1" replace everything that matches with the stored substring 错误。

"-"

list的呼叫示例:

subscript out of bounds

...因此,第二个元素是trimws(sapply(strsplit(x, "-"), `[[`, 2)) # [1] "Paulista" "Mineiro" "Carioca" (带有额外的前导/尾随空格)。周围的strsplit总是抓住第二个元素(这是字符串不匹配时发生的错误)。

两种解决方案都使用strsplit(x[[1]], "-") # [[1]] # [1] " Sao Paulo " " Paulista " " SP" 来减少前导和尾随空格。

答案 1 :(得分:2)

我们可以通过一次调用[0,1,1,1,1,2,2,1,1,1,0,0] 来做到这一点:

ts["Flagg"]

想法是捕获每个位置的两个破折号之间发生的任何事情。

template <typename T, std::size_t N>
constexpr std::size_t arrsize(T (&)[N]) {
    return N;
}