如何仅过滤R中所有字符串中包含所有大写字母的向量

如何仅过滤R中所有字符串中包含所有大写字母的向量,r,string,dplyr,R,String,Dplyr,我需要筛选R中大写的行。我设法使用了以下代码: filter(str_detect(fruit, "^[:upper:]+$")) 但是,“fruit”列的某些值包含两个或三个字符串,并且上面的代码仅适用于只有一个字符串的情况。我无法共享数据,但这个示例适用于我的目的(仅str_detect部分) fruit尝试包含空格字符类 stringr::str_detect(fruit, "^[[:upper:][:space:]]+$") #[1] FALSE

我需要筛选R中大写的行。我设法使用了以下代码:

filter(str_detect(fruit, "^[:upper:]+$"))
但是,“fruit”列的某些值包含两个或三个字符串,并且上面的代码仅适用于只有一个字符串的情况。我无法共享数据,但这个示例适用于我的目的(仅str_detect部分)


fruit尝试包含空格字符类

stringr::str_detect(fruit, "^[[:upper:][:space:]]+$")
#[1] FALSE  TRUE FALSE  TRUE  TRUE  TRUE
根据问题的答案,否定大写:

stringr::str_detect(fruit, "^[^[:lower:]]+$")
#[1] FALSE  TRUE FALSE  TRUE  TRUE  TRUE

我们可以在
base R

grep("^[A-Z ]+$", fruit, value = TRUE)
#[1] "ORANGE"          "TWO PEARS"       "A BIG PINEAPPLE" "LEMON"   
获取其他元素

grep("^[A-Z ]+$", fruit, value = TRUE, inverse = TRUE)

你能不能否定寻找小写字母的结果?谢谢,@Rui Barradas它起作用了!我用过!要否定大写的表达式:filter(!str_detect(fruit,“^[:upper:::+$”),但我更喜欢您的解决方案。
grep("^[A-Z ]+$", fruit, value = TRUE, inverse = TRUE)