全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
3625 2
2016-09-12
初学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,这样也就知道每一项结果是什么。
由于初学,自己百度了半天也没弄明白,求教各位,谢谢!!!

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-9-12 04:32:27
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-9-14 06:24:04
johnmy 发表于 2016-9-12 04:32
谢谢指点!
但是我试运行了一下,结果显示的离差矩阵s不是按矩阵形式显示的,而是一个一个显示矩阵里的数字:MVTest(X,c(4,50,10),0.05)
[1] "Xbar=4.64"  "Xbar=45.4"  "Xbar=9.965"
[1] "S=54.708"           "S=190.19"           "S=-34.372"         
[4] "S=190.19"           "S=3795.98"          "S=-107.16"         
[7] "S=-34.372"          "S=-107.16"          "S=68.9254999999998"
[1] "T2=9.73877285543565"
[1] "F=2.90454629021765"
[1] "P=0.0649283353805297"
[1] "H0 can't be rejected"
怎么样才能让显示结果变为矩阵形式的?
再次感谢!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群