首页 > 解决方案 > 在新列中创建具有唯一值的同一数据框的多个副本

问题描述

我有一个非常大的数据集,我想为其制作多个副本,但是对于这个数据集的每个副本,我想在一个新列中给出一个不同的值。这样做的目的是通过这些列将另一组数据与该数据集配对。让我举例说明。假设我的数据集如下:

id   value
X01    NA
X02    NA
X03    NA
X04    NA
X05    NA
X06    NA

我想复制这个数据框的 32 个副本,然后对于每个副本,在第三个新列中给它一个不同的值,称为“字符”。整个列可以填充该值,方法是为其提供一个列表,例如 c("apple"、"banana"、"green"、"red") 等。我想这样做,以便一旦有 32 个不同的副本数据集已经创建,然后它们可以重新绑定在一起,32 个副本中的每一个都是新数据集的部分,它们之间的唯一区别是这个新的值列。有谁知道这样做的好方法?以前,我刚刚通过以下过程创建了 32 个数据框:

df_1 <- df %>% mutate(character = "apple")
df_2 <- df %>% mutate(character = "banana")


等,然后将它们绑定在一起。

标签: rdplyrdataset

解决方案


我们可以通过循环 alistmutatenew 列中的值向量来做到这一点

library(purrr)
library(dplyr)
library(stringr)
out <- map(c("apple", "banana"), ~ df %>% 
             mutate(character = .x))
names(out) <- str_c("df_", seq_along(out))

推荐阅读