R - 将几个因子级别设置为函数中的默认参数

R - set several factor levels as default argument in a function

我正在尝试创建一个从数据集中查找价格和汽车类型的函数。两者都有默认参数。对于价格,这很容易。但是对于汽车类型(我有作为因素),我找不到将所有因素设置为默认值的方法。

目标是,如果您不在 car_type 中设置任何内容,它将 return 所有可能的汽车类型。

search <- function(start_price = 0, end_price = 1000, car_type = ???){
  subset_data <- auto[price <= end_price   &
                      price >  start_price &
                      vehicleType == car_type]
  return(subset_data)
}
search()

因此 "search()" return 是价格在 0 到 1000 之间的所有汽车以及所有可能的汽车类型。我试过使用向量和列表,但没有任何运气。

解决这个问题的通常方法是使用 NULL 作为默认值并在函数中处理它。

search <- function(start_price = 0, end_price = 1000, car_type = NULL){
  if (is.null(car_type) {
    car_type <- levels(auto$vehicleType)
  }
  subset_data <- auto[price <= end_price   &
                      price >  start_price &
                      vehicleType %in% car_type]
  return(subset_data)
}