Есть ли функция для поиска всех строчных букв в векторе символов?

Я только что написал один, но мне было интересно, существует ли он уже в R.

Вот функция BTW (предложения по улучшению приветствуются):

set.seed(50)
x <- sample(c(letters, LETTERS), 7)

is.lower <- function(x)
{
    unlist(sapply(x, function(x2) {x2 %in% letters}))
}

is.lower(x)

person Tal Galili    schedule 12.12.2010    source источник


Ответы (2)


grepl("[a-z]",x) например?

> grepl("[a-z]",x)
[1] FALSE  TRUE  TRUE FALSE  TRUE  TRUE FALSE

А зачем усложнять?

> x %in% letters
[1] FALSE  TRUE  TRUE FALSE  TRUE  TRUE FALSE

Нет необходимости делать свою собственную функцию.

person Joris Meys    schedule 12.12.2010
comment
Привет Йорис. Я краснею, читая ваше второе решение. Я явно очень устал - пора спать... Спасибо за первое решение, я не подумал об этом. - person Tal Galili; 12.12.2010
comment
@Tal: не нужно краснеть, недавно я совершил почти ту же ошибку. Думаю, немного сна может помочь ;-) - person Joris Meys; 12.12.2010
comment
Вот функция, которая может помочь вам время от времени: TalGalili ‹- function(x) Sys.sleep(28800) - person Roman Luštrik; 12.12.2010

Другой подход со значениями вместо логического индекса в результате состоит в том, чтобы называть буквы как они сами и использовать «[» с x в качестве индекса:

 names(letters) <- letters
 letters[x]
#<NA>    w    k <NA>    y    c <NA> 
#  NA  "w"  "k"   NA  "y"  "c"   NA 
person IRTFM    schedule 12.12.2010