首页 > 解决方案 > 将一列分类变量按顺序添加到数据框列表中

问题描述

我有多个数据框已读入一个列表。我想将特定分类变量序列的新列添加到此列表中的每个数据框。

例如,我有以下数据框列表(data_list):

df1
             Slice    Count    
        1    C1       10          
        2    C2       2      
        3    C3       5    
df2
             Slice    Count    
        1    C1       3          
        2    C2       8      
        3    C3       6    
df3
             Slice    Count    
        1    C1       0          
        2    C2       0      
        3    C3       3    

我写了以下脚本:

region_name <- c("North","East","South")
data_list <- Map(cbind, data_list, Region = region_name)

这就是我得到的:

df1
             Slice    Count    Region    
        1    C1       10       North  
        2    C1       2        North
        3    C1       5        North
df2
             Slice    Count    Region    
        1    C1       3        East  
        2    C1       8        East
        3    C1       6        East
df3
             Slice    Count    Region    
        1    C1       0        South  
        2    C1       0        South
        3    C1       3        South

如何让分类变量在每个数据帧内按顺序重复(而不是跨数据帧按顺序重复):

df1
             Slice    Count    Region    
        1    C1       10       North  
        2    C1       2        East
        3    C1       5        South
df2
             Slice    Count    Region    
        1    C1       3        North  
        2    C1       8        East
        3    C1       6        South
df3
             Slice    Count    Region    
        1    C1       0        North  
        2    C1       0        East
        3    C1       3        South

标签: rlistdataframe

解决方案


或者我们可以使用mapwithmutate

library(tidyverse)
map(data_list, ~ .x %>% 
                     mutate(Region = region_name))

推荐阅读