相关疑难解决方法(0)

如何使用purrr中的map与dplyr :: mutate基于列对创建多个新列

我必须使用R来关注问题.简而言之,我想基于数据框中不同列对的计算在数据帧中创建多个新列.

数据如下:

df <- data.frame(a1 = c(1:5), 
                 b1 = c(4:8), 
                 c1 = c(10:14), 
                 a2 = c(9:13), 
                 b2 = c(3:7), 
                 c2 = c(15:19))
df
a1 b1 c1 a2 b2 c2
1  4 10  9  3 15
2  5 11 10  4 16
3  6 12 11  5 17
4  7 13 12  6 18
5  8 14 13  7 19
Run Code Online (Sandbox Code Playgroud)

输出应该如下所示:

a1 b1 c1 a2 b2 c2 sum_a sum_b sum_c
1  4 10  9  3 15    10     7    25
2  5 …
Run Code Online (Sandbox Code Playgroud)

r dplyr purrr mutate

10
推荐指数
4
解决办法
7353
查看次数

如何使用 map* 和 mutate 将列表转换为一组附加列?

我已经连续几天尝试了这段代码的数百种排列,试图获得一个能够完成我想要的功能的函数,但我最终放弃了。感觉这绝对是可行的,而且我已经很接近了!

我试图通过下面的代表回到这里的核心问题。

基本上我有一个单行数据框,其中一列包含字符串列表(“概念”)。我想为每个字符串创建一个附加列,mutate最好使用从字符串中获取其名称的列,然后使用函数调用的结果填充该列(?哪个函数并不重要,对于现在?-我只需要该功能的基础设施就可以工作。)

像往常一样,我觉得我一定错过了一些明显的东西......也许只是一个语法错误。我还想知道是否需要使用purrr::map,也许更简单的矢量化映射可以正常工作。

我觉得新列的命名..1而不是概念名称这一事实可以说明问题所在。

我可以通过手动调用每个概念来创建我想要的数据框架(请参阅 reprex 的结尾),但由于不同数据框架的概念列表不同,我想使用管道和 tidyverse 技术来实现此功能,而不是手动执行。

我已阅读以下问题来寻求帮助:

但这些都没有完全帮助我解决我遇到的问题。[编辑:在最后一个q中添加到该列表中,这可能是我需要的技术]。

<!-- language-all: lang-r -->


    # load packages -----------------------------------------------------------

    library(rlang)
    library(dplyr)
    library(tidyr)
    library(magrittr)
    library(purrr)
    library(nomisr)



    # set up initial list of tibbles ------------------------------------------

    df <- list(
      district_population = tibble(
        dataset_title = "Population estimates - local authority based …
Run Code Online (Sandbox Code Playgroud)

r dplyr purrr tidyeval

5
推荐指数
1
解决办法
2757
查看次数

标签 统计

dplyr ×2

purrr ×2

r ×2

mutate ×1

tidyeval ×1