[英]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.