Нахождение значения в R, которое содержит определенную строку

Да, это разрешено до тех пор, пока подпись будет одинаковой. И , на мой взгляд, , да, вы правы, переопределение видимости (например, public -> private) прерывает IS-A. Я полагаю, что у Скотта Майерса «Эффективная серия C ++» есть обсуждение этого вопроса.

1
задан Hannah 23 February 2019 в 16:36
поделиться

4 ответа

Попробуйте:

sum(grepl("(?<![A-Za-z])the(?![A-Za-z])", x, perl = T))

Это дает сумму 2 на вашем примере.

Но давайте рассмотрим также несколько более сложный пример:

x <- c("the_dog", "the_cat", "dog", "theano", "menthe", " the")

Вывод:

[1] 3

Выше мы пытаемся сопоставить любое the, которое не ' не иметь другой буквы до или после (например, theano).

Вы также можете добавить в [] другие вещи, которые вы не хотели бы сопоставлять, например, например. если бы вы не считали the99 словом the, вы бы сделали [A-Za-z0-9] и т. д.

Вы также можете использовать вышеупомянутое с stringr, например (я включил исключение чисел, поэтому ниже the99 не будет считаться как слово):

library(stringr)

sum(str_detect(x, "(?<![A-Za-z0-9])the(?![A-Za-z0-9])"))
0
ответ дан arg0naut91 23 February 2019 в 16:36
поделиться
library(stringr)
##with a vector
sum(str_detect(c("the_dog", "the_cat", "dog"),"the"))

##In a dataframe

tibble(x = c("the_dog", "the_cat", "dog")) %>%
    filter(str_detect(x, "the")) %>%
    nrow()
0
ответ дан Harro Cyranka 23 February 2019 в 16:36
поделиться
x <- c("the_dog", "the_cat", "dog") 
stringr::str_detect(x, "the")
#> [1]  TRUE  TRUE FALSE

Создано в 2019-02-23 с помощью пакета представитель (v0.2.1)

0
ответ дан Balthasar 23 February 2019 в 16:36
поделиться

Попробуйте также:

x <- c("the_dog", "the_cat", "dog")
sum(stringi::stri_count(x,regex="^the"))#matches the at the beginning

Результат:

[1] 2

Или:

   x <- c("the_dog", "the_cat", "dog")
  sum(stringi::stri_count(x,regex="the{1,}"))#matches any the
0
ответ дан NelsonGon 23 February 2019 в 16:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: