dplyr批量计算新列

dplyr批量计算新列,r,dplyr,R,Dplyr,我想使用dplyr向data.frame添加新列。一个接一个地使用mutate很容易。但是,我有一种情况,我有一个基于其他列计算多个参数的函数,我想一次性将它们添加到表中。假设我有一个函数 f = function(x) {data.frame(A = x + 1, B = x + 2, C = x + 3)} 我想对data.frame中的一列运行这个函数,并将结果添加到相同的data.frame中,所以 df = data.frame(x = 1:10) df %>% XXX(f(x

我想使用dplyr向data.frame添加新列。一个接一个地使用
mutate
很容易。但是,我有一种情况,我有一个基于其他列计算多个参数的函数,我想一次性将它们添加到表中。假设我有一个函数

f = function(x) {data.frame(A = x + 1, B = x + 2, C = x + 3)}
我想对data.frame中的一列运行这个函数,并将结果添加到相同的data.frame中,所以

df = data.frame(x = 1:10)
df %>% XXX(f(x))
将导致data.frame如下所示:

x   A  B  C
1   2  3  4
2   3  4  5
3   4  5  6
4   5  6  7
5   6  7  8
6   7  8  9
7   8  9 10
8   9 10 11
9  10 11 12
10 11 12 13

我知道我在上面的例子中读过类似于
XXX
的函数,但我现在找不到它。有人有提示吗?

我们可以使用
do

library(dplyr)
df %>% 
  do(data.frame(., f(.$x)))
#    x  A  B  C
#1   1  2  3  4
#2   2  3  4  5
#3   3  4  5  6
#4   4  5  6  7
#5   5  6  7  8
#6   6  7  8  9
#7   7  8  9 10
#8   8  9 10 11
#9   9 10 11 12
#10 10 11 12 13


我们可以使用
do

library(dplyr)
df %>% 
  do(data.frame(., f(.$x)))
#    x  A  B  C
#1   1  2  3  4
#2   2  3  4  5
#3   3  4  5  6
#4   4  5  6  7
#5   5  6  7  8
#6   6  7  8  9
#7   7  8  9 10
#8   8  9 10 11
#9   9 10 11 12
#10 10 11 12 13