[英]Filter argument in function that defaults to make dplyr::filter() filter nothing
我正在構建一個導入excel電子表格的功能。
我希望函數包含一個參數,該參數包含用戶感興趣的變量名。 該參數的值在函數內部的dplyr :: filter()中使用。 我希望參數的默認值包括所有內容(即不過濾掉任何內容)。
庫和數據:
library(tidyverse)
data("iris")
沒有任何默認過濾器值的過濾器功能(有效):
FILTER <- function(data = iris,
Filter_Values) {
data %>%
filter(Species %in% Filter_Values)
}
FILTER(Filter_Values = c("setosa", "virginica"))
如上所述,我希望Filter_Values參數默認為不過濾任何內容。
這可行,但是當然不是一般的:
FILTER <-
function(data = iris,
Filter_Values = c("setosa", "versicolor", "virginica")) {
data %>%
filter(Species %in% Filter_Values)
}
FILTER()
您能幫我找到一個可以做到的通用術語嗎? 我嘗試過(但失敗了):
Filter_Values = TRUE
Filter_Values = c(TRUE)
Filter_Values = regex(".*")
Filter_Values = everything()
任何幫助表示贊賞,
謝謝
這個怎么樣?
FILTER <-
function(data = iris,
Filter_Values = unique(data$Species)) {
data %>%
filter(Species %in% Filter_Values)
}
FILTER()
也許:
FILTER <- function(data = iris,Filter_Values = NULL) {
if (missing(Filter_Values)) data
else data %>% filter(Species %in% Filter_Values)
}
FILTER()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.