我尝试为一个现有列的不同截止值创建新列(二进制变量)。下面是我的尝试:
df <- data.frame(x = rnorm(10))
cutoffs <- c(-1, 0, 1)
df <- df %>%
mutate(across(
.cols = everything(),
.names = "{.col}_cutoff_{cutoffs}",
.fns = setNames(lapply(cutoffs, function(cut) as.integer(x <= cut)), paste0("cutoff_", cutoffs))
))
这一直返回一个错误。哪里出错了?
1条答案
按热度按时间kr98yfug1#
你的函数没有返回函数。注意。fns应该是一个函数。在你的例子中它不是一个函数
您可以在mutate之外编写函数。注意,由于您已经使用了
.names
参数,因此不需要设置name。