如何仅过滤R中所有字符串中包含所有大写字母的向量
我需要筛选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
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)