Creat a dataframe name column across a list of dataframes in R

Viewed 83

I am trying to create a column about the dataframe name on a list of dataframes. Every dataframe on the list will then has a column called "source" where I can see their dataframe name. What's the best way to do it on a list of dataframes?

df_list <- list(mtcars, iris, mtcars)
names(df_list) = c("mtcars1", "iris1", "mtcars2")

Expected outcome

$mtcars1
                     mpg cyl  disp  hp drat    wt  qsec vs am gear carb source
Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4 mtcars1
Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4 mtcars1
Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1 mtcars1
Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1 mtcars1

$iris1
    Sepal.Length Sepal.Width Petal.Length Petal.Width    Species source
1            5.1         3.5          1.4         0.2     setosa iris1 
2            4.9         3.0          1.4         0.2     setosa iris1
3            4.7         3.2          1.3         0.2     setosa iris1

$mtcars2
                     mpg cyl  disp  hp drat    wt  qsec vs am gear carb source
Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4 mtcars2 
Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4 mtcars2
Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1 mtcars2
Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1 mtcars2
Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2 mtcars2
2 Answers

Try Map + cbind

v <- c("mtcars1", "iris1", "mtcars2")
Map(cbind, setNames(df_list, v), source = v)

and you will see

> Map(cbind, setNames(df_list, v), source = v)
$mtcars1
                     mpg cyl  disp  hp drat    wt  qsec vs am gear carb  source
Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4 mtcars1
Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4 mtcars1
Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1 mtcars1
Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1 mtcars1
Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2 mtcars1
Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1 mtcars1
Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4 mtcars1
Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2 mtcars1
Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2 mtcars1
Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4 mtcars1
Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4 mtcars1
Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3 mtcars1
Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3 mtcars1
Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3 mtcars1
Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4 mtcars1
Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4 mtcars1
Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4 mtcars1
Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1 mtcars1
Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2 mtcars1
Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1 mtcars1
Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1 mtcars1
Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2 mtcars1
AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2 mtcars1
Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4 mtcars1
Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2 mtcars1
Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1 mtcars1
Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2 mtcars1
Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2 mtcars1
Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4 mtcars1
Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6 mtcars1
Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8 mtcars1
Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2 mtcars1

$iris1
    Sepal.Length Sepal.Width Petal.Length Petal.Width    Species source
1            5.1         3.5          1.4         0.2     setosa  iris1
2            4.9         3.0          1.4         0.2     setosa  iris1
3            4.7         3.2          1.3         0.2     setosa  iris1
4            4.6         3.1          1.5         0.2     setosa  iris1
5            5.0         3.6          1.4         0.2     setosa  iris1
6            5.4         3.9          1.7         0.4     setosa  iris1
7            4.6         3.4          1.4         0.3     setosa  iris1
8            5.0         3.4          1.5         0.2     setosa  iris1
9            4.4         2.9          1.4         0.2     setosa  iris1
10           4.9         3.1          1.5         0.1     setosa  iris1
11           5.4         3.7          1.5         0.2     setosa  iris1
12           4.8         3.4          1.6         0.2     setosa  iris1
13           4.8         3.0          1.4         0.1     setosa  iris1
14           4.3         3.0          1.1         0.1     setosa  iris1
15           5.8         4.0          1.2         0.2     setosa  iris1
16           5.7         4.4          1.5         0.4     setosa  iris1
17           5.4         3.9          1.3         0.4     setosa  iris1
18           5.1         3.5          1.4         0.3     setosa  iris1
19           5.7         3.8          1.7         0.3     setosa  iris1
20           5.1         3.8          1.5         0.3     setosa  iris1
21           5.4         3.4          1.7         0.2     setosa  iris1
22           5.1         3.7          1.5         0.4     setosa  iris1
23           4.6         3.6          1.0         0.2     setosa  iris1
24           5.1         3.3          1.7         0.5     setosa  iris1
25           4.8         3.4          1.9         0.2     setosa  iris1
26           5.0         3.0          1.6         0.2     setosa  iris1
27           5.0         3.4          1.6         0.4     setosa  iris1
28           5.2         3.5          1.5         0.2     setosa  iris1
29           5.2         3.4          1.4         0.2     setosa  iris1
30           4.7         3.2          1.6         0.2     setosa  iris1
31           4.8         3.1          1.6         0.2     setosa  iris1
32           5.4         3.4          1.5         0.4     setosa  iris1
33           5.2         4.1          1.5         0.1     setosa  iris1
34           5.5         4.2          1.4         0.2     setosa  iris1
35           4.9         3.1          1.5         0.2     setosa  iris1
36           5.0         3.2          1.2         0.2     setosa  iris1
37           5.5         3.5          1.3         0.2     setosa  iris1
38           4.9         3.6          1.4         0.1     setosa  iris1
39           4.4         3.0          1.3         0.2     setosa  iris1
40           5.1         3.4          1.5         0.2     setosa  iris1
41           5.0         3.5          1.3         0.3     setosa  iris1
42           4.5         2.3          1.3         0.3     setosa  iris1
43           4.4         3.2          1.3         0.2     setosa  iris1
44           5.0         3.5          1.6         0.6     setosa  iris1
45           5.1         3.8          1.9         0.4     setosa  iris1
46           4.8         3.0          1.4         0.3     setosa  iris1
47           5.1         3.8          1.6         0.2     setosa  iris1
48           4.6         3.2          1.4         0.2     setosa  iris1
49           5.3         3.7          1.5         0.2     setosa  iris1
50           5.0         3.3          1.4         0.2     setosa  iris1
51           7.0         3.2          4.7         1.4 versicolor  iris1
52           6.4         3.2          4.5         1.5 versicolor  iris1
53           6.9         3.1          4.9         1.5 versicolor  iris1
54           5.5         2.3          4.0         1.3 versicolor  iris1
55           6.5         2.8          4.6         1.5 versicolor  iris1
56           5.7         2.8          4.5         1.3 versicolor  iris1
57           6.3         3.3          4.7         1.6 versicolor  iris1
58           4.9         2.4          3.3         1.0 versicolor  iris1
59           6.6         2.9          4.6         1.3 versicolor  iris1
60           5.2         2.7          3.9         1.4 versicolor  iris1
61           5.0         2.0          3.5         1.0 versicolor  iris1
62           5.9         3.0          4.2         1.5 versicolor  iris1
63           6.0         2.2          4.0         1.0 versicolor  iris1
64           6.1         2.9          4.7         1.4 versicolor  iris1
65           5.6         2.9          3.6         1.3 versicolor  iris1
66           6.7         3.1          4.4         1.4 versicolor  iris1
67           5.6         3.0          4.5         1.5 versicolor  iris1
68           5.8         2.7          4.1         1.0 versicolor  iris1
69           6.2         2.2          4.5         1.5 versicolor  iris1
70           5.6         2.5          3.9         1.1 versicolor  iris1
71           5.9         3.2          4.8         1.8 versicolor  iris1
72           6.1         2.8          4.0         1.3 versicolor  iris1
73           6.3         2.5          4.9         1.5 versicolor  iris1
74           6.1         2.8          4.7         1.2 versicolor  iris1
75           6.4         2.9          4.3         1.3 versicolor  iris1
76           6.6         3.0          4.4         1.4 versicolor  iris1
77           6.8         2.8          4.8         1.4 versicolor  iris1
78           6.7         3.0          5.0         1.7 versicolor  iris1
79           6.0         2.9          4.5         1.5 versicolor  iris1
80           5.7         2.6          3.5         1.0 versicolor  iris1
81           5.5         2.4          3.8         1.1 versicolor  iris1
82           5.5         2.4          3.7         1.0 versicolor  iris1
83           5.8         2.7          3.9         1.2 versicolor  iris1
84           6.0         2.7          5.1         1.6 versicolor  iris1
85           5.4         3.0          4.5         1.5 versicolor  iris1
86           6.0         3.4          4.5         1.6 versicolor  iris1
87           6.7         3.1          4.7         1.5 versicolor  iris1
88           6.3         2.3          4.4         1.3 versicolor  iris1
89           5.6         3.0          4.1         1.3 versicolor  iris1
90           5.5         2.5          4.0         1.3 versicolor  iris1
91           5.5         2.6          4.4         1.2 versicolor  iris1
92           6.1         3.0          4.6         1.4 versicolor  iris1
93           5.8         2.6          4.0         1.2 versicolor  iris1
94           5.0         2.3          3.3         1.0 versicolor  iris1
95           5.6         2.7          4.2         1.3 versicolor  iris1
96           5.7         3.0          4.2         1.2 versicolor  iris1
97           5.7         2.9          4.2         1.3 versicolor  iris1
98           6.2         2.9          4.3         1.3 versicolor  iris1
99           5.1         2.5          3.0         1.1 versicolor  iris1
100          5.7         2.8          4.1         1.3 versicolor  iris1
101          6.3         3.3          6.0         2.5  virginica  iris1
102          5.8         2.7          5.1         1.9  virginica  iris1
103          7.1         3.0          5.9         2.1  virginica  iris1
104          6.3         2.9          5.6         1.8  virginica  iris1
105          6.5         3.0          5.8         2.2  virginica  iris1
106          7.6         3.0          6.6         2.1  virginica  iris1
107          4.9         2.5          4.5         1.7  virginica  iris1
108          7.3         2.9          6.3         1.8  virginica  iris1
109          6.7         2.5          5.8         1.8  virginica  iris1
110          7.2         3.6          6.1         2.5  virginica  iris1
111          6.5         3.2          5.1         2.0  virginica  iris1
112          6.4         2.7          5.3         1.9  virginica  iris1
113          6.8         3.0          5.5         2.1  virginica  iris1
114          5.7         2.5          5.0         2.0  virginica  iris1
115          5.8         2.8          5.1         2.4  virginica  iris1
116          6.4         3.2          5.3         2.3  virginica  iris1
117          6.5         3.0          5.5         1.8  virginica  iris1
118          7.7         3.8          6.7         2.2  virginica  iris1
119          7.7         2.6          6.9         2.3  virginica  iris1
120          6.0         2.2          5.0         1.5  virginica  iris1
121          6.9         3.2          5.7         2.3  virginica  iris1
122          5.6         2.8          4.9         2.0  virginica  iris1
123          7.7         2.8          6.7         2.0  virginica  iris1
124          6.3         2.7          4.9         1.8  virginica  iris1
125          6.7         3.3          5.7         2.1  virginica  iris1
126          7.2         3.2          6.0         1.8  virginica  iris1
127          6.2         2.8          4.8         1.8  virginica  iris1
128          6.1         3.0          4.9         1.8  virginica  iris1
129          6.4         2.8          5.6         2.1  virginica  iris1
130          7.2         3.0          5.8         1.6  virginica  iris1
131          7.4         2.8          6.1         1.9  virginica  iris1
132          7.9         3.8          6.4         2.0  virginica  iris1
133          6.4         2.8          5.6         2.2  virginica  iris1
134          6.3         2.8          5.1         1.5  virginica  iris1
135          6.1         2.6          5.6         1.4  virginica  iris1
136          7.7         3.0          6.1         2.3  virginica  iris1
137          6.3         3.4          5.6         2.4  virginica  iris1
138          6.4         3.1          5.5         1.8  virginica  iris1
139          6.0         3.0          4.8         1.8  virginica  iris1
140          6.9         3.1          5.4         2.1  virginica  iris1
141          6.7         3.1          5.6         2.4  virginica  iris1
142          6.9         3.1          5.1         2.3  virginica  iris1
143          5.8         2.7          5.1         1.9  virginica  iris1
144          6.8         3.2          5.9         2.3  virginica  iris1
145          6.7         3.3          5.7         2.5  virginica  iris1
146          6.7         3.0          5.2         2.3  virginica  iris1
147          6.3         2.5          5.0         1.9  virginica  iris1
148          6.5         3.0          5.2         2.0  virginica  iris1
149          6.2         3.4          5.4         2.3  virginica  iris1
150          5.9         3.0          5.1         1.8  virginica  iris1

$mtcars2
                     mpg cyl  disp  hp drat    wt  qsec vs am gear carb  source
Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4 mtcars2
Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4 mtcars2
Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1 mtcars2
Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1 mtcars2
Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2 mtcars2
Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1 mtcars2
Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4 mtcars2
Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2 mtcars2
Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2 mtcars2
Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4 mtcars2
Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4 mtcars2
Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3 mtcars2
Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3 mtcars2
Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3 mtcars2
Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4 mtcars2
Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4 mtcars2
Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4 mtcars2
Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1 mtcars2
Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2 mtcars2
Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1 mtcars2
Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1 mtcars2
Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2 mtcars2
AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2 mtcars2
Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4 mtcars2
Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2 mtcars2
Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1 mtcars2
Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2 mtcars2
Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2 mtcars2
Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4 mtcars2
Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6 mtcars2
Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8 mtcars2
Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2 mtcars2
df_list <- list(mtcars, iris, mtcars)
names(df_list) = c("mtcars1", "iris1", "mtcars2")
for (i in 1:length(df_list)) {
        
        df_list[[i]][["source"]] = names(df_list)[i]
        
}
Related