使用dplyr中的一个mutate_across函数进行减法和除法

我有一个看起来像虹膜数据集的数据集。

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa

我想跨越 Sepal.Length:Petal.Width 用数字2减去每个值,然后将结果除以4。如何在 dplyr 中使用 mutate_across 而不是两行在一行中执行此操作?

iris %>% 
  mutate(across(c(Sepal.Length:Petal.Width), ~. -2 )) %>% 
  mutate(across(c(Sepal.Length:Petal.Width), ~. /4 )) 

回答

library(dplyr, warn.conflicts = F)
iris %>%
  mutate(across(1:4, ~  (. - 2)/4))
#>     Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
#> 1          0.775       0.375       -0.150      -0.450     setosa
#> 2          0.725       0.250       -0.150      -0.450     setosa
#> 3          0.675       0.300       -0.175      -0.450     setosa
#> 4          0.650       0.275       -0.125      -0.450     setosa
#> 5          0.750       0.400       -0.150      -0.450     setosa
#> 6          0.850       0.475       -0.075      -0.400     setosa
#> 7          0.650       0.350       -0.150      -0.425     setosa
#> 8          0.750       0.350       -0.125      -0.450     setosa
#> 9          0.600       0.225       -0.150      -0.450     setosa
#> 10         0.725       0.275       -0.125      -0.475     setosa
.
.

由reprex 包( v2.0.0 )于 2021 年 7 月 6 日创建


以上是使用dplyr中的一个mutate_across函数进行减法和除法的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>