Marascuilo程序中R
问题描述:
我正在进行marascuilio程序,以比较比例之间的差异。 我使用下面的代码(复制和改编this tutorial:Marascuilo程序中R
## Set the proportions of interest.
p = c(0.3481, 0.1730, 0.4788)
N = length(p)
value = critical.range = c()
## Compute critical values.
for (i in 1:(N-1))
{ for (j in (i+1):N)
{
value = c(value,(abs(p[i]-p[j])))
critical.range = c(critical.range,
sqrt(qchisq(.95,3))*sqrt(p[i]*(1-p[i])/12000 + p[j]*(1-p[j])/12000))
}
}
round(cbind(value,critical.range),3)
我需要输出将同时打印类别的标签(例如,它们正好被比较的类别)
所以如果这些类别的分离式向量上市,如categories <- c("cat1", "cat2", cat"3)
,攀比是cat1-cat2
,cat1-cat3
,并cat2-cat3
。
我怎么能这些标签附加到我的输出?
value critical.range
[1,] 0.175 0.016
[2,] 0.131 0.018
[3,] 0.306 0.016
答
试试这个:
## Set the proportions of interest.
p = c(0.3481, 0.1730, 0.4788)
N = length(p)
value = critical.range = tag = c()
categories <- c("cat1", "cat2", "cat3")
## Compute critical values.
for (i in 1:(N-1)){
for (j in (i+1):N){
value <- c(value,(abs(p[i]-p[j])))
critical.range = c(critical.range,
sqrt(qchisq(.95,N-1))*sqrt(p[i]*(1-p[i])/12000 + p[j]*(1-p[j])/12000))
tag = c(tag, paste(categories[i], categories[j], sep = "-"))
}
}
df <- as.data.frame(cbind(value,critical.range, tag), stringsAsFactors = F)
df$value <- round(as.numeric(df$value),3)
df$critical.range <- round(as.numeric(df$critical.range),3)
输出:
value critical.range tag
1 0.175 0.016 cat1-cat2
2 0.131 0.018 cat1-cat3
3 0.306 0.016 cat2-cat3
+1
太好了。我将'df $ significance df $ critical.range,“yes”,“no”)加到'df'中,因此它也会指出比较是否显着。 –
又该输出数据框的样子在上面的例子吗? – thepule
我添加了一个例子,所以基本上应该添加另一列,并携带有关类别比较的信息 –