mutate
能够引用在同一个调用中创建的列(例如mutate(flights, gain = arr_delay - dep_delay, gain_per_hour = gain / (air_time / 60))
)。
我正在尝试使用与do()
一样的工作。以下只是一个抛弃的例子 - 我保证我有充分的理由想要这样做:
data.frame(n=round(runif(1000,20,100),0)) %>%
group_by(n) %>%
do(
x=mean(rnorm(.$n,10,1)),
y=mean(rnorm(.$n,20,x))
)
当然,我收到错误Error in rnorm(.$n, 20, x) : object 'x' not found
。如果我尝试使用.$x
,我会获得Error in rnorm(.$n, 20, .$x) : invalid arguments
。我无法找到任何与此相关的文档,也许这是不可能的 - 但它似乎应该是。
答案 0 :(得分:2)
如果你不想理解你想要实现什么,如果你将do()链接到另一个do(),那么结果就是y。
data.frame(n=round(runif(1000,20,100),0)) %>%
group_by(n) %>% do(
x=mean(rnorm(.$n,10,1))
) %>% do(
y=mean(rnorm(.$n,20,.$x))
)