gpt4 book ai didi

r - Mutate_at ,通过指定列名添加列

转载 作者:行者123 更新时间:2023-12-03 08:37:53 26 4
gpt4 key购买 nike

我有iris数据框。我想添加列“log_Sepal.Length”和“log_Sepal.Width”,它们是将日志应用到“Sepal.Length”和“Sepal.Width”的结果。我尝试过:

iris %>% 
mutate_at(.vars = vars(names(.)[str_detect(names(.), "Sepal")] ), .funs = c("identity", "log"))

但我想要的数据框是:

iris$log_Sepal.Length <- log(iris$Sepal.Length) 
iris$log_Sepal.Width <- log(iris$Sepal.Width)
iris

mutate_at 可能吗? ?

最佳答案

您可以使用:

library(dplyr)
iris %>% mutate_at(vars(contains('Sepal')), list(log = ~log(.)))

但是,mutate_at 已被弃用,请使用 dplyr 1.0.0 中的 across

iris %>% mutate(across(contains('Sepal'), log, .names = 'log_{col}'))

# Sepal.Length Sepal.Width Petal.Length Petal.Width Species log_Sepal.Length log_Sepal.Width
#1 5.1 3.5 1.4 0.2 setosa 1.629241 1.252763
#2 4.9 3.0 1.4 0.2 setosa 1.589235 1.098612
#3 4.7 3.2 1.3 0.2 setosa 1.547563 1.163151
#4 4.6 3.1 1.5 0.2 setosa 1.526056 1.131402
#5 5.0 3.6 1.4 0.2 setosa 1.609438 1.280934
#6 5.4 3.9 1.7 0.4 setosa 1.686399 1.360977
#...
#...

关于r - Mutate_at ,通过指定列名添加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63355817/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com