[英]exposition in dplyr without magrittr?
dplyr是否具有magrittr的%$%運算符的首選語法,因為在tidyverse中默認不加載它? 例如,我經常使用這個:
data.frame(A=rbinom(100,1,p=0.5),B=rbinom(100,1,p=0.5)) %$% chisq.test(A,B)
有沒有一種首選的方法可以在單獨的tidyverse中做到這一點? 我覺得pull()應該可以做到這一點,但我無法弄清楚如何在管道內調用兩次pull()。
來自magrittr的vigenettes :
“exposition”管道運算符
%$%
將左側對象中的名稱暴露給右側表達式。 從本質上講,它是使用with函數的簡寫。
所以你可以with
:
data.frame(A=rbinom(100,1,p=0.5),B=rbinom(100,1,p=0.5)) %>% with(chisq.test(A,B))
你可以使用一個點.
引用原始數據幀,並使用大括號{}
來阻止%>%
填充第一個參數:
data.frame(A=rbinom(100,1,p=0.5),B=rbinom(100,1,p=0.5)) %>%
{chisq.test(.$A, .$B)}
除了@Marius解決方案之外,如果我們只需要提取p-value
,還有一個summarise
選項
set.seed(24)
data.frame(A=rbinom(100,1,p=0.5),B=rbinom(100,1,p=0.5)) %>%
summarise(p_val = chisq.test(A, B)$p.val)
# p_val
#1 0.8394397
假設,我們需要獲取其他參數,然后使用broom::tidy
set.seed(24)
data.frame(A=rbinom(100,1,p=0.5),B=rbinom(100,1,p=0.5)) %>%
summarise(p_val = list(broom::tidy(chisq.test(A, B)))) %>%
unnest
# statistic p.value parameter method
#1 0.0410509 0.8394397 1 Pearson's Chi-squared test with Yates' continuity correction
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.