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

时间:2017-06-22 14:11:43

标签: r function arguments default

我试图创建一个从数据集中查找价格和汽车类型的功能。两者都有默认参数。对于价格,这很容易。但对于汽车类型(我有哪些因素),我无法找到将所有因素设置为默认值的方法。

目标是,如果您未在car_type中设置任何内容,则会返回所有可能的车型。

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()

这样&#34;搜索()&#34;返回0到1000之间的所有汽车以及所有可能的汽车类型。我尝试过使用矢量和列表,没有任何运气。

1 个答案:

答案 0 :(得分:1)

通常的方法是使用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)
}