计算r中二元变量的相关系数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算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
以上是关于计算r中二元变量的相关系数的主要内容,如果未能解决你的问题,请参考以下文章