df <- tibble::tribble( ~sev_curve, ~curve_type, ~trend_date, ~weight,
"MILO", 'HOSPITALS', '7/1/2020', 0.4,
'ALSO', 'PHYSICIANSC', '7/1/2020', 0.6)
df %>% mutate(new_column=#calls function on all columns of df)
因此,以上内容大致就是我所需要的。 df data.frame可以具有许多不同的列,下一行代码可能不知道。但是它需要在所有这些列上调用一个函数来创建一个新列。
如何在mutate函数中访问df中的所有列?
答案 0 :(得分:2)
我们可以使用mutate_at
library(dplyr)
df %>%
mutate_at(vars(-one_of(c("sev_curve", "weight"))), list(new = ~ n_distinct(.)))
# A tibble: 2 x 6
# sev_curve curve_type trend_date weight curve_type_new trend_date_new
# <chr> <chr> <chr> <dbl> <int> <int>
#1 MILO HOSPITALS 7/1/2020 0.4 2 1
#2 ALSO PHYSICIANSC 7/1/2020 0.6 2 1
或者没有one_of
df %>%
mutate_at(vars(-c("sev_curve", "weight")), list(new = ~ n_distinct(.)))