r - 如何将 purrr 映射与数据框中的列一起使用?
问题描述
我想将数据框的多列除以同一数据框的一列(以获取百分比)。我想用 purrr 来做,以便能够迭代每一列的操作,我尝试按以下方式进行操作,但失败了。
#create the tibble
competitor_a <- c(125,300,250)
competitor_b <- c(321,452,366)
competitor_c <- c(231,271,139)
data <- tibble(competitor_a,competitor_b,competitor_c)
data <- data %>%
mutate(total_sales=sum(competitor_a,competitor_b,competitor_c))
#iteration
data %>%
map(select(competitor_a,competitor_b,competitor_c)/total_sales))
data
我的数据框在哪里,competitor_a, competitor_b, competitor_c
是包含竞争对手销售额(股息)的列,total_sales
是我的分隔符。
解决方案
在这种情况下,我认为最好使用across
:
library(dplyr)
data <- data %>% mutate(across(competitor_a:competitor_c, `/`, total_sales))
这也可以使用 base R 来完成:
data[1:3] <- data[1:3]/data$total_sales
推荐阅读
- java - 将图标添加到服装 JDialog
- github - 提交 -S 未知开关 `S'
- php - 使用内部解析访问数组中的数组
- html - 的奇怪行为
- javascript - Wheelnav.js 库的菜单项中的 Unicode 实体(在引擎盖下使用 raphael.js)[SVG]
- sql-server - 使用 SPROC SQL 输出的 IF 语句
- laravel - 如何在以 Vue 作为前端的 Laravel 项目中使用 Typescript?
- c# - 鼠标滚轮事件未在第二个监视器中引发
- android - 将多个数据从 Android SQLLite 同步到 MariaDB
- css - 相同的背景颜色,不同的渐变宽度