一、数据汇总函数
我们还是以R中自带的iris数据为例,输入head(iris)你可以获得数据的前6个样本及对应的5个变量。取出最后两列数据作为讲解的对象:Species表示花的种类,Petal.Width表示花瓣宽度
data=iris[,c(4,5)]下一步我们想计算不同种类花瓣的平均宽度,可以使用tapply函数,在计算前先用attach命令将data这个数据框解包以方便直接操作其变量,而不需再用$符号。
attach(data)结果如下
tapply(X=Petal.Width,INDEX=Species,FUN=mean)
setosa versicolor virginica和tapply类似的还有sapply函数,在进一步讲解前初学者还需搞清楚两种数据表现方式,即stack(堆叠数据)和unstack(非堆叠数据),上面的data就是一个堆叠数据,每一行表示一个样本。而非堆叠数据可以根据unstack函数转换而来
0.246 1.326 2.026
data.unstack=unstack(data)你应该明白这二者之间的区别了,如果要对非堆叠数据计算不同种类花瓣的平均宽度,可以利用如下函数。
head(data.unstack)
sapply(data.unstack,FUN=mean)结果是一样的,也就是说tapply对应于stack数据,而sapply对应于unstack数据
二、概率计算函数
如果给定一种概率分布,通常会有四类计算问题:
- 计算其概率密度density (d)
- 计算其概率分布probability(p)
- 计算其百分位数quantile (q)
- 随机数模拟random (r)
举例来讲,我们求标准正态分布曲线下小于1的面积p(x<1),正态分布是norm,而分布函数是p,那么使用pnorm(1)就得出了结果0.84;若计算扔10次硬币实验中有3次正面向上的概率,类似的dbinom(x=3,size=10,prob=0.5)得出0.11
三、抽样函数
我们想从1到10中随机抽取5个数字,那么这样来做:首先产生一个序列,然后用sample函数进行无放回抽取。
x=1:10有放回抽取则是
sample(x,size=5)
sample(x,size=5,replace=T)sample函数在建模中经常用来对样本数据进行随机的划分,一部分作为训练数据,另一部分作为检验数据。
哈哈,在这里找到了一个有用的code:attach..
回复删除俺刚刚把数据用read.csv读出了,但是就是不知道怎么使用,现在搞出来点东西了。。
谢谢楼主!
积跬步以成千里 :)
删除拜读了,谢谢。
回复删除您好,请问sample函数里面的x参数具体功能是什么。
回复删除