dplyr批量计算新列
我想使用dplyr向data.frame添加新列。一个接一个地使用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
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
或