[英]calculating a correlation coefficient for a binary variable in r
Dataframe1: group "N"
ID A B score
1 pos pos AB
1 neg pos B
2 neg neg Neg
3 neg pos B
4 neg neg Neg
5 neg neg Neg
5 pos neg A
5 neg pos B
Combined dataframe
AB A B Neg
N 440 54 67 345
O 3 6 56 543
P 23 25 3 765
R 4 5 67 243
我有 4 个队列 (NOPR),它们有成对的测试(A 和 B)。 所有人都进行了 A 和 B 测试。 有些在两项测试 (AB) 中均呈阳性,有些仅在一项测试 (A 或 B) 中呈阳性。 我想回答两个问题: 1. 测试 A 对每个队列的潜在阳性率增加了多少? 2. A 和 B 多久关联一次每个群组?
为了分析测试(AB)之间的相关性,我尝试了计算 Phi 系数。 我遵循了@akrun 在另一篇文章中的建议,但无法让它发挥作用。
combn(df, 2, FUN = function(x) Phi(x[,1], x[,2]))
关于如何计算这个的任何建议?
它不起作用,因为您的数据的组织方式不同。 您的每一行数据都是一个完整的 2x2 表格。 使用dput
将您的数据放入我们可以轻松阅读的格式。 然后我们可以剪切/粘贴它:
dta <- structure(list(AB = c(440L, 3L, 23L, 4L), A = c(54L, 6L, 25L,
5L), B = c(67L, 56L, 3L, 67L), Neg = c(345L, 543L, 765L, 243L
)), class = "data.frame", row.names = c("N", "O", "P", "R"))
dfa
# AB A B Neg
# N 440 54 67 345
# O 3 6 56 543
# P 23 25 3 765
# R 4 5 67 243
dfa 的第一行是一个表格,所以对于 N:
N <- matrix(unlist(dfa[1, ]), 2, 2, byrow=TRUE, dimnames=list(A=c("Pos", "Neg"), B=c("Pos", "Neg")))
N
# B
# A Pos Neg
# Pos 440 54
# Neg 67 345
我们可以使用apply
来获取所有的 Phi 系数:
apply(dfa, 1, function(x) Phi(matrix(x, 2)))
# N O P R
# 0.73028594 0.09784794 0.63669678 0.09088293
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.