在字符向量中是否有查找所有小写字母的函数?

5

我刚刚写了一个函数,但是我想知道在R中是否已经存在一个相似的函数。

这是我的函数(欢迎提出改进意见):

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

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

is.lower(x)
2个回答

15

举个例子,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

不需要自己编写函数。


1
嗨,Joris。读完你的第二个解决方案后,我感到有点尴尬。显然我很累了,该去睡觉了...谢谢你的第一个解决方案,我没想到那个方法。 - Tal Galili
1
@Tal:不用害羞,我以前也犯过几乎同样的错误。不过我猜睡个觉可能会有所帮助;-) - Joris Meys
6
这是一个可能会偶尔有用的函数: TalGalili <- function(x) Sys.sleep(28800) 它的作用是让程序暂停执行8小时(28800秒)。 - Roman Luštrik

3

另一种使用值而不是逻辑索引作为结果的方法是将字母命名为它们本身,并使用“[”作为索引x:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接