此问题在此处已有答案:
How to add multiple columns to a data.frame in one go?(2个答案)
21小时前关门了。
我有一个需要向tibble中添加任意数量的列的情况。我需要添加的列名将来自一个列表。
如果只有一列,这很容易,我只会使用add_column()
。
例如,从tibbledf* 开始,我可以添加列c**,如下所示:
library(tidyverse)
df <- tibble(a = 1:3, b = 3:1)
df <- add_column(df, c = 0)
结果是...
# A tibble: 3 × 3
a b c
<int> <int> <dbl>
1 1 3 0
2 2 2 0
3 3 1 0
这使我相信,如果我想添加多个列,例如从列表new_cols中添加多个列,我可以将它们Map到add_column()
上,但由于某种原因,我不能。
library(tidyverse)
df <- tibble(a = 1:3, b = 3:1)
new_cols <- c('d','e','f')
map(new_cols, ~ df <- add_column(df, . = 0))
......当然,再多考虑一些map()是错误的想法--map的全部意义是生成一个列表,而不是副作用。
我相信有一个简单的一行程序,但它逃脱了我现在。
2条答案
按热度按时间bqf10yzr1#
hvvq6cgz2#
如果您搜索
map
之类的purrr
解决方案,请尝试reduce
:还可以使用拼接操作符
!!!
将命名向量或命名参数列表注入add_column()
。