我使用ddply函数进行了一些分析。
数据帧(long.format
)结构如下:
'data.frame': 2058 obs. of 3 variables:
$ tertile : Factor w/ 3 levels "1","2","3": 2 1 3 2 2 3 1 1 1 1 ...
$ variable: Factor w/ 21 levels "age","ht","wt",..: 1 1 1 1 1 1 1 1 1 1 ...
$ value : num 57 57 65 58 59 56 63 63 68 58 ...
我使用ddply使用$ value在$ tertile中执行$ variable的anova,如下所示:
aovfun <- function(x) aov(tertile~value,x)
y <- ddply(long.format, .(variable), aovfun)
随后的数据库给出了截距和斜率,但是我是否可以提取单个P值?
我附加了一个示例data.frame的代码,如下所示:
tertile = rep(1L:3L,9)
年龄= RNORM(9,60,5)
HT = RNORM(9,157,10)
重量= RNORM(9,70,5)
df&lt; - data.frame(tertile,age,ht,wt)
long.format&lt; - melt(df,id = c(&#34; tertile&#34;))
答案 0 :(得分:1)
尝试:
aovfun <- function(x) aov(value~tertile,x)
ddply(long.format, .(variable),
function(x) summary.aov(aovfun(x))[[1]][["Pr(>F)"]])[,-3]
# variable V1
#1 age 0.06676654
#2 ht 0.23854030
#3 wt 0.88039549