如何对数据帧的一行中的项目执行二比例 Z 检验并将 p 值附加到数据帧?

How to perform Two-proportion Z test on items in a row of a dataframe and append the p value to the dataframe?

我正在使用 R,数据帧中有数据。

数据框的每一行都有 urban/rural 基础上的数据,以及用于比较城市和农村人口比率的二比例 Z 检验。

df

State     UrbanPop     RuralPop     UrbanCases   RuralCases
AL         1000         250          200          50
AK         500          50           500          75

想法是从 A 行和 B 行中的数据独立获得二比例 Z 检验,以比较每个州内的 urban/rural。

我试过的是

df$P_Values <- apply(df,1,function(x) prop.test(x = c(df$UrbanPop, df$UrbanCases), n = c(df$RuralPop, df$RuralCases))$p.value)

我收到一条警告,指出每一行的“卡方近似值可能不正确”,并且附加到数据框的所有 p 值都等于零。

如有任何帮助,我们将不胜感激。

谢谢。

xn 错了:x 是“成功次数的向量”;那将匹配您的 *Cases,而 n 是试验次数;那将对应于您的 *Pop。如果您重新分配 xn 的向量,代码有效:

df$P_Values <- apply(df, 1, function(x) prop.test(n = c(df$UrbanPop, df$UrbanCases), 
                                                  x = c(df$RuralPop, df$RuralCases))$p.value)

df
  UrbanPop RuralPop UrbanCases RuralCases             P_Values
1     1000      250        200         50 0.000000000001119084
2      500       50        500         75 0.000000000001119084