簡體   English   中英

R chisq.test - 通過 df 自動化,每個變量與每個變量,df 有數據,而不是計數,寬格式

[英]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.

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