pnorm函数用于查找正态分布随机变量的概率。概率,例如小于均值,大于均值或均值左右两侧之间的概率。如果我们想在数据框列上使用pnorm函数,那么apply函数可以为我们提供帮助。
考虑以下数据帧-
x1<-rnorm(20,5,0.35) x2<-rnorm(20,5,0.67) x3<-rnorm(20,5,0.04) df1<-data.frame(x1,x2,x3) df1输出结果
x1 x2 x3 1 4.556392 5.973934 5.018973 2 5.217397 4.932053 4.975870 3 5.426464 4.932799 4.962231 4 4.930645 5.297919 5.017925 5 4.773804 4.768619 4.943131 6 4.963782 4.569909 4.950701 7 4.925481 5.329717 4.985630 8 4.940240 5.871122 5.007031 9 4.904643 5.270739 5.022102 10 4.652542 5.784937 5.005462 11 5.089297 4.479673 4.961000 12 5.619575 4.181733 4.983067 13 4.696906 4.451156 4.931908 14 5.177524 4.422826 5.052467 15 5.186783 5.184310 5.015104 16 4.497172 5.241887 4.996715 17 4.689212 5.252937 5.035001 18 5.385772 4.095684 5.035014 19 5.455497 5.142272 5.021073 20 5.417301 5.025720 5.005374
在df1中的列上应用pnorm-
apply(df1,2,function(x) pnorm(x,mean=mean(x),sd=sd(x)))输出结果
x1 x2 x3 [1,] 0.07616627 0.96450889 0.75138999 [2,] 0.72115750 0.44156102 0.27056837 [3,] 0.88960525 0.44211276 0.15403922 [4,] 0.38629544 0.70493965 0.74135388 [5,] 0.22132609 0.32516348 0.05581552 [6,] 0.42550072 0.20448316 0.08623025 [7,] 0.38027932 0.72516490 0.37486428 [8,] 0.39754810 0.94661794 0.62607863 [9,] 0.35630529 0.68712704 0.78009609 [10,] 0.12759048 0.92666438 0.60816173 [11,] 0.57741133 0.15991056 0.14545675 [12,] 0.96515143 0.06018775 0.34616630 [13,] 0.15806523 0.14725726 0.02700442 [14,] 0.67888286 0.13536904 0.95364621 [15,] 0.68893707 0.62769115 0.71330952 [16,] 0.05346986 0.66772918 0.50508628 [17,] 0.15246286 0.67521495 0.87668128 [18,] 0.86438253 0.04322155 0.87676402 [19,] 0.90541682 0.59753060 0.77087289 [20,] 0.88424194 0.51137989 0.60714737
y1<-rpois(20,5) y2<-rpois(20,2) y3<-rpois(20,2) y4<-rpois(20,5) y5<-rpois(20,10) df2<-data.frame(y1,y2,y3,y4,y5) df2输出结果
y1 y2 y3 y4 y5 1 7 4 3 3 10 2 7 2 2 5 6 3 2 1 4 4 11 4 5 1 2 6 13 5 6 2 3 9 10 6 7 4 4 4 7 7 5 3 2 7 15 8 2 1 1 3 15 9 3 1 2 4 9 10 4 3 1 4 15 11 1 4 4 4 13 12 5 6 4 8 9 13 3 0 5 2 14 14 7 2 1 8 7 15 6 3 4 5 10 16 3 2 2 6 19 17 4 1 5 5 11 18 7 2 1 5 11 19 6 1 2 9 9 20 3 3 4 3 9
在df2中的列上应用pnorm-
apply(df2,2,function(x) pnorm(x,mean=mean(x),sd=sd(x)))输出结果
y1 y2 y3 y4 y5 [1,] 0.88543697 0.87874297 0.55840970 0.14362005 0.36298572 [2,] 0.88543697 0.41829947 0.27834877 0.46146443 0.05825608 [3,] 0.08752759 0.18573275 0.81101173 0.28079874 0.48176830 [4,] 0.57107536 0.18573275 0.27834877 0.65061458 0.71356535 [5,] 0.75517414 0.41829947 0.55840970 0.96698029 0.36298572 [6,] 0.88543697 0.87874297 0.81101173 0.28079874 0.10296979 [7,] 0.57107536 0.68482707 0.27834877 0.80804251 0.87967779 [8,] 0.08752759 0.18573275 0.09300983 0.14362005 0.87967779 [9,] 0.19922632 0.18573275 0.27834877 0.28079874 0.25614928 [10,] 0.36970390 0.68482707 0.09300983 0.28079874 0.87967779 [11,] 0.03088880 0.87874297 0.81101173 0.28079874 0.71356535 [12,] 0.57107536 0.99451570 0.81101173 0.91220051 0.25614928 [13,] 0.19922632 0.05691416 0.94698775 0.06082067 0.80746817 [14,] 0.88543697 0.41829947 0.09300983 0.91220051 0.10296979 [15,] 0.75517414 0.68482707 0.81101173 0.46146443 0.36298572 [16,] 0.19922632 0.41829947 0.27834877 0.65061458 0.99163233 [17,] 0.36970390 0.18573275 0.94698775 0.46146443 0.48176830 [18,] 0.88543697 0.41829947 0.09300983 0.46146443 0.48176830 [19,] 0.75517414 0.18573275 0.27834877 0.96698029 0.25614928 [20,] 0.19922632 0.68482707 0.81101173 0.14362005 0.25614928