簡體   English   中英

如何在同一調用中使用在dplyr :: do()中創建的列?

[英]How do I use a column created in dplyr::do() within same call?

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得到錯誤Error in rnorm(.$n, 20, x) : object 'x' not found 如果我嘗試使用.$x Error in rnorm(.$n, 20, .$x) : invalid arguments得到Error in rnorm(.$n, 20, .$x) : invalid arguments 我還沒有找到與此相關的任何文檔,也許這是不可能的-但似乎應該如此。

如果不了解要實現的目標,如果將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))
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM