[英]chisq.test for each row on four numbers and output in new data frame in R
[英]R chisq.test - automate through a df, each variable with each, df has data, not counts, wide form
我有一個如下所示的數據框:
gend domh nat le re lf rf ad ab imp
1 f R fr y y n y y y Y
2 f R fr n n y n n n N
3 f R fr y y Y
4 f R fr n n n n n n N
5 m L fr y n n y y y Y
6 m R fr y y y y y y Y
7 m R fr y y y y y y Y
8 f L fr y y n n n y N
9 f R fr n n n n n y N
10 m R fr y y y y y y Y
11 f R fr y y n n y y Y
12 m R pfr n N
13 f R pfr y y n n n y N
14 m R pfr y n n n y y N
15 f R pfr y n y n y y Y
16 f R pfr y n y y y y Y
17 m L pfr n n y y y y Y
18 m R pfr y y y y y y Y
19 m R pfr y n y y y y Y
20 f R pfr y y y y y y Y
21 f R pfr n N
22 f R pfr y y y y y y Y
我希望每個變量都與每個變量“卡方”,即性別與 domh、nat、le 等,然后 domh 與其他每個變量,等等。我知道如何手動執行此操作:
>chisq.test(df$gend, df$domh, simulate.p.value = T, B = 1000000)
但必須有一種方法來自動化這一點。 我只需要測試中的 p 值(和配對名稱)。 有人可以幫忙嗎?
corrr
包中的函數colpair_map
似乎提供了一種方法,因為您只需要 p 值。 (當然,循環列是顯而易見的選擇)。
# you first need a function that just returns p-value
# to be used in colpair_map. The <htest> object returned
# by chisq.test doesn't work with colpair_map
chisq_pval <- function(...) {
chisq.test(...)$p.value
}
# the chisq_pval function defined above can now be used directly
# in colpair_map, along with the additional arguments for chisq.test
corrr::colpair_map(df, chisq_pval, simulate.p.value = T, B = 1000000)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.