我正在尝试查看许多分类变量的相互作用。我正在尝试收集 P 值。我发现这里的代码似乎与我想要做的类似,但我似乎无法让代码与我的数据一起正常运行。
我梳理我的数据首先查看变量并列出每个可能的变量组合。但是当我尝试使用该函数并将其应用于每个变量组合时,它会在代码的 chisq.test 部分中引发错误,因此永远不会创建 df_res。
catOnly.test 包含类似(除最后两个之外的所有分类)的数据。
有什么建议么?
V_NP_001 001 FU12Month V N 0 4 None 0.000 1.734
f = function(x,y) {
tbl = as.data.frame(catOnly.test)%>% select(x,y) %>% table()
chisq_pval = round(chisq.test(tbl)$p.value, 4)
cramV = round(cramersV(tbl), 4)
data.frame(x, y, chisq_pval, cramV) }
# create unique combinations of column names
# sorting will help getting a better plot (upper triangular)
df_comb = data.frame(t(combn(sort(names(catOnly.test)), 4)), stringsAsFactors = F)
# apply function to each variable combination
df_res = map2_df(df_comb$X1, df_comb$X2, f)
# plot results
df_res %>%
ggplot(aes(x,y,fill=chisq_pval))+
geom_tile()+
geom_text(aes(x,y,label=cramV))+
scale_fill_gradient(low="red", high="yellow")+
theme_classic()
print(df_res)