5

複数の列にわたるカイ二乗統計の使用dplyrと計算について質問があります。reshape2以下は小さなデータフレームです...

Sat <- c("Satisfied","Satisfied","Dissatisfied","Dissatisfied",
                                       "Neutral")

Gender <- c("Male","Male","Female","Male","Female")

Ethnicity <- c("Asian","White","White","Asian","White")

AgeGroup <- c("18-20","18-20","21-23","18-20","18-28")

Example <- data.frame(Sat,Gender,Ethnicity,AgeGroup)

summarise_each他の各変数に対して列を使用またはmelt計算してSat、カイ二乗残差と p 値の統計を生成するにはどうすればよいですか。私は次のようなものがあるに違いないと考えています:

Example %>% summarise_each(funs(chisq.test(... 

しかし、私はそれを終了する方法がわかりません。また、どのようにデータ フレームを溶かして、カイ 2 乗統計を使用group_byまたは取得しますか? do()両方の方法に興味があります。パッケージを組み込む方法があれば、それも素晴らしいbroomでしょう。tidyrreshape2

要約すると、次のようなカイ二乗検定を実行したいと思います

chisq.test(Example$Sat, Example$Gender)

しかし... 、、およびSatに対する変数のカイ二乗統計を生成したいと思います。これは小さな例です。上記の方法を使用して、多くの列のカイ 2 乗統計を高速かつ効率的に作成できることを願っています。を使用してヒート マップに残差をプロットできればボーナスです。そのため、パッケージをこの例に組み込むことに関心があります。GenderEthnicityAgeGroupggplot2broom

4

1 に答える 1

3

取得する必要がある場合p values

 Example %>% 
    summarise_each(funs(chisq.test(., 
               Example$Sat)$p.value), -one_of("Sat"))
 #     Gender Ethnicity  AgeGroup
 #1 0.2326237 0.6592406 0.1545873

または抽出するにはstatistic

Example %>%
    summarise_each(funs(chisq.test(., 
           Example$Sat)$statistic), -one_of("Sat"))
#   Gender Ethnicity AgeGroup
#1 2.916667 0.8333333 6.666667

を取得するにはresidualsbase R

 lapply(Example[setdiff(names(Example), "Sat")], 
       function(x) chisq.test(x, Example$Sat)$residuals)
于 2016-04-07T05:26:33.457 に答える