r - 使用 dplyr 中的一个 mutate_across 函数进行减法和除法
问题描述
我有一个看起来像 iris 数据集的数据集。
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 包于 2021-07-06 创建 (v2.0.0 )
推荐阅读
- excel - Sumproduct - 计算相等的数字对(并过滤它们)
- docker - 如何从 docker-compose.yml 中的私有 docker 存储库中提取 docker 映像?
- mongodb - 将字段名称映射到猫鼬中的不同模式字段名称
- ms-access - 我在 Power BI 中的表格视觉对象未显示所有数据
- regex - 用于查找文件路径的 Groovy 模式或正则表达式
- java - 我试图清除二维数组的所有值
- python - 使用 OpenCV 创建和保存 16 位 RGB 图像
- django - 从输出中删除查询集
- python - 在 Cython 中将 C++ 向量转换为 numpy 数组而不复制
- .net-core - 如何使用 .NET Core 识别 swagger doc 中的公共控制器