Re: [問題] 有沒有可以快速呈現多重比較的MACRO?
不好意思,我之前忘記回您信了
我不知道是否有直接的方法做
我是直接寫一個function去做的
我知道您是初學者,但是很抱歉的
我所能做的就是奉上我的R code
您如果有任何問題可以再問我,謝謝
code:
# 資料生成
k = 4
n = 3:(k+2) * 100
set.seed(100)
mu = sample(seq(-3, 3, length = 100) * 1.5, k)
sigma = sample(seq(0.5, 10, length = 100), k)
y = unlist(lapply(1:k, function(i) rnorm(n[i], mu[i], sigma[i])))
group = unlist(lapply(1:k, function(i) rep(i, n[i])))
dat = data.frame(y, group)
# 以anova scheffe test為例
# 有很多變數的話,主要是更動scheffe.test第二個element
# 以及aov的公式input,要用paste做。
# 可以用names(dat)做input,前面再加個迴圈就好。
library(agricolae)
anova_result = aov(y ~ group, dat)
sheffe_test_result = scheffe.test(anova_result,
"group",group=FALSE,console=FALSE)
order_v = order(sheffe_test_result$means[,1])
comparison_result = sheffe_test_result$comparison
sig_level = 0.05
comparison_pairs = rownames(comparison_result)
sign_v = sapply(1:(k-1), function(j){
pair = order_v[j:(j+1)]
location = which(grepl(pair[1], comparison_pairs)
& grepl(pair[2], comparison_pairs))
if(comparison_result$pvalue[location] < sig_level)
return(">")
else
return("=")
})
output_v = paste(order_v[1:2], collapse = paste("", sign_v[1], ""))
if(length(sign_v) > 1){
for(i in 2:(k-1))
output_v = paste(output_v, sign_v[i], order_v[i+1])
}
output_v
# "4 > 2 = 1 > 3"
※ 引述《wanson (望生)》之銘言:
: 在統計板有人提到可以像用R 將快速整理出多重比較
: 如
: 1 > 2 =3 之類的
: 我寄信給那位網友,想跟他請教
: 但沒有下文
: 我沒有使用過R
: 但想學習看看
: 不知道板上的板友是否也會這個快速整理的方法
: 不知道是否方便教導一下
: 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.164.192.51
※ 文章網址: http://www.ptt.cc/bbs/R_Language/M.1406822943.A.914.html
※ 編輯: celestialgod (218.164.192.51), 08/01/2014 00:11:35
推
08/01 02:58, , 1F
08/01 02:58, 1F
R_Language 近期熱門文章
PTT數位生活區 即時熱門文章