繁体   English   中英

data.frame 列作为 function 的参数

[英]data.frame column as parameter of function

如何将列用作自定义 function 参数:

custom_function <- function(value, group) {
  if (group == "setosa") {
    value*0
  } else if (group == "versicolor") {
    value*1
  } else if (group == "virginica") {
    value*2
  }
}

iris %>%
  mutate(new_column = custom_function(value = Sepal.Length, group = Species))

您的 function 期望组的长度为 1,因此您需要做到这一点:

iris %>% 
  group_by(Species) %>% ## 1 Species per group
  mutate(
    ## use first() so only a single value is passed to the group arg
    new_column = custom_function(value = Sepal.Length, group = first(Species))
  )

或者您可以使用矢量化的ifelse() (或dplyr::case_when )而不是if(){}else{}来矢量化您的 function 。 这显然是一个简单的示例,因此很难知道哪个更适合您的实际用例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM