帮同事做的,原始数据如下:
![](https://img.haomeiwen.com/i9144768/db6868cf05abb0d7.png)
需要变成这样的两列数据:
![](https://img.haomeiwen.com/i9144768/9bee86cc7a92724e.png)
其中group是分组,有观察组和对照组;effect是效果,4表示完全有效,3是部分有效,2是轻微有效,1是无效。
所用代码如下:
numlist <- c(8, 14, 4, 4, 2, 7, 7, 14)
effect = c()
for(i in 1:length(numlist)){
if(i%%4 != 0){
effect = c(effect, rep((5 - i%%4), numlist[i]))
}
else{effect = c(effect, rep(1, numlist[i]))}
}
data3 <- data.frame(group = c(rep('case', sum(numlist[1:4])), rep('control', sum(numlist[5:8]))),
effect = effect)
kruskal.test(effect~group, data3)
结果如下:
![](https://img.haomeiwen.com/i9144768/ca1d4d403bed2ee0.png)
另外有两个卡方检验,代码附录如下:
inputmatrix <- function(CaseEffec, CaseNon, ConEffec, ConNon){
datmat = matrix(c(CaseEffec, CaseNon, ConEffec, ConNon), ncol = 2, byrow = T)
colnames(datmat) = c('Effective', 'NonEffective')
rownames(datmat) = c('Case', 'Control')
return(datmat)
}
data1 <- inputmatrix(21, 9, 13, 17)
chisq.test(data1, correct = F)
data2 <- inputmatrix(27, 3, 22, 8)
chisq.test(data2)
网友评论