grepl 允许任何字符串
grepl for any string allowed
我正在构建一个由函数参数提供的 grepl 命令。如果不需要,我想跳过 grep 命令。我可以用控制语句做到这一点,但我想传递一个 returns 所有字符串的值。
some_sub <- function(data, descr="*.*"){
return(data %>% filter(grepl(descr, description)))
}
我想要进行以下工作:
some_sub(data, "Cabbage")
some_sub(data) # returns everything
其中数据
data <- structure(list(description = structure(c(1L, 1L, 2L, 1L),
.Label = c("Cabbage","Carrot"),
class = "factor"),
weight = c(12L, 9L, 7L, 15L)),
class = "data.frame",
row.names = c(NA,-4L))
一个选项是只使用 .
(因为它是任何字符的元字符)作为 descr
参数
的默认匹配
又添加了一个参数colNm
以概括更多
如果有空格 (""
) 并且想要匹配那些,最好将 *
作为默认值
some_sub <- function(data, colNm, descr="."){
colNm <- enquo(colNm)
data %>%
filter(grepl(descr, !!colNm))
}
some_sub(iris, Species, "setosa")
some_sub(iris, Species)
使用 OP' 数据
some_sub(data, description, "Cabbage")
# description weight
#1 Cabbage 12
#2 Cabbage 9
#3 Cabbage 15
some_sub(data, description)
# description weight
#1 Cabbage 12
#2 Cabbage 9
#3 Carrot 7
#4 Cabbage 15
我正在构建一个由函数参数提供的 grepl 命令。如果不需要,我想跳过 grep 命令。我可以用控制语句做到这一点,但我想传递一个 returns 所有字符串的值。
some_sub <- function(data, descr="*.*"){
return(data %>% filter(grepl(descr, description)))
}
我想要进行以下工作:
some_sub(data, "Cabbage")
some_sub(data) # returns everything
其中数据
data <- structure(list(description = structure(c(1L, 1L, 2L, 1L),
.Label = c("Cabbage","Carrot"),
class = "factor"),
weight = c(12L, 9L, 7L, 15L)),
class = "data.frame",
row.names = c(NA,-4L))
一个选项是只使用 .
(因为它是任何字符的元字符)作为 descr
参数
又添加了一个参数colNm
以概括更多
如果有空格 (""
) 并且想要匹配那些,最好将 *
作为默认值
some_sub <- function(data, colNm, descr="."){
colNm <- enquo(colNm)
data %>%
filter(grepl(descr, !!colNm))
}
some_sub(iris, Species, "setosa")
some_sub(iris, Species)
使用 OP' 数据
some_sub(data, description, "Cabbage")
# description weight
#1 Cabbage 12
#2 Cabbage 9
#3 Cabbage 15
some_sub(data, description)
# description weight
#1 Cabbage 12
#2 Cabbage 9
#3 Carrot 7
#4 Cabbage 15