初学R,模仿着自编一个均值检验函数,想输出中间计算结果,程序和输出结果如下:
> MVTest=function(X,mu0,alpha)
+ {
+ n=nrow(X)
+ p=ncol(X)
+ Xbar=apply(X,MARGIN = 2,mean)
+ print(Xbar)
+ S=t(X)%*%X-n*Xbar%*%t(Xbar)
+ print(S)
+ T2=n*(n-1)*t(Xbar-mu0)%*%solve(S)%*%(Xbar-mu0)
+ print(T2)
+ F=(n-p)*T2/((n-1)*p)
+ print(F)
+ P=1-pf(F,p,(n-p))
+ print(P)
+ if (P > alpha)
+ return ("H0 can't be rejected")
+ if (P <= alpha)
+ return ("H0 should be rejected")
+
+ }
> MVTest(X,mu0=c(4,50,10),alpha=0.05)
输出结果:
X1 X2 X3
4.640 45.400 9.965
X1 X2 X3
X1 54.708 190.19 -34.3720
X2 190.190 3795.98 -107.1600
X3 -34.372 -107.16 68.9255
[,1]
[1,] 9.738773
[,1]
[1,] 2.904546
[,1]
[1,] 0.06492834
[1] "H0 can't be rejected"
问题:
由于输出结果较多,直接用print函数输出,只有各项结果,怎么加上各项结果的名称?比如给离差阵的计算结果
X1 X2 X3
X1 54.708 190.19 -34.3720
X2 190.190 3795.98 -107.1600
X3 -34.372 -107.16 68.9255
这个结果前加上:S=或者S,这样也就知道每一项结果是什么。
由于初学,自己百度了半天也没弄明白,求教各位,谢谢!!!


雷达卡




京公网安备 11010802022788号







