资源描述
R04:Basic Functions 林林 建建 甫甫C.F.Jeff Lin,MD.PhD.台台 北北 大大 學學 統統 計計 系系 助助 理理 教教 授授台台 北北 榮榮 民民 總總 醫醫 院院 生生 物物 統統 計計 顧顧 問問美美 國國 密密 西西 根根 大大 學學 生生 物物 統統 計計 博博 士士5/6/20241Jeff Lin,MD.PhD.Functions5/6/20242Jeff Lin,MD.PhD.FunctionsFunctions do things with data“Input”:function arguments(0,1,2,)“Output”:function result(exactly one)xvec mean(xvec)1 5.5 pnorm(1.96,mean=0,sd=1)1 0.97500215/6/20243Jeff Lin,MD.PhD.Functions:Arguments help(mean)mean(x,.)help(pnorm)pnorm(q,mean=0,sd=1,lower.tail=TRUE,log.p=FALSE)5/6/20244Jeff Lin,MD.PhD.Missing ArgumentsR function can handle missing arguments two ways:either by providing a default expression in the argument list of definition,or by testing explicitly for missing arguments.5/6/20245Jeff Lin,MD.PhD.Missing Arguments in Functions add add(4)add add(4)5/6/20246Jeff Lin,MD.PhD.Variable Number of ArgumentsThe special argument name“”in the function definition will match any number of arguments in the call.nargs()returns the number of arguments in the current call.5/6/20247Jeff Lin,MD.PhD.Variable Number of Arguments mean.of.all mean.of.all(1:10,20:100,12:14)mean.of.means-function()means-numeric()for(x in list()means-c(means,mean(x)mean(means)5/6/20248Jeff Lin,MD.PhD.Variable Number of Argumentsmean.of.means-function()n-nargs()means-numeric(n)all.x-list()for(j in 1:n)meansj help(predict)predict is a generic function for predictions from the results of various model fitting functions.help(predict.lm)predict.lm produces predicted values,obtained by evaluating the regression function in the frame newdata predict(lm(distspeed),newdata)5/6/202415Jeff Lin,MD.PhD.Calling Conventions for FunctionsArguments may be specified in the same order in which they occur in function definition,in which case the values are supplied in order.Arguments may be specified as name=value,when the order in which the arguments appear is irrelevant.Above two rules can be mixed.t.test(x1,y1,var.equal=F,conf.level=.99)t.test(var.equal=F,conf.level=.99,x1,y1)5/6/202416Jeff Lin,MD.PhD.Useful Functions seq(2,12,by=2)1 2 4 6 8 10 12 seq(4,5,length=5)1 4.00 4.25 4.50 4.75 5.00 rep(4,10)1 4 4 4 4 4 4 4 4 4 4 paste(V,1:5,sep=)1 V1 V2 V3 V4 V5 LETTERS1:71 A B C D E F G5/6/202417Jeff Lin,MD.PhD.Vector Functions vec sum(vec)1 59 prod(vec)1 351120 mean(vec)1 9.833333 median(vec)1 8.5 var(vec)1 34.96667 sd(vec)1 5.913262 summary(vec)Min.1st Qu.Median Mean 3rd Qu.Max.4.000 5.250 8.500 9.833 13.250 19.000 And also:min()max()cummin()cummax()range()5/6/202418Jeff Lin,MD.PhD.Logic FunctionsR contains:TRUE(ou T)et FALSE(ou F).Exemple:3=41 FALSE 4 31 TRUE x x 11 FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE sum(xx1)1 5 sum(x1)1 2=exactement galplus grand=plus grand ou gal!=diffrent&“et”(“and”)|“ou”(“or”)5/6/202419Jeff Lin,MD.PhD.lapply,sapply,apply5/6/202420Jeff Lin,MD.PhD.apply and Its RelativesOften we want to repeat the same function on all the rows or columns of a matrix,or all the elements of a list.We could do this in a loop,but R has a more efficient operator the apply function 5/6/202421Jeff Lin,MD.PhD.Applying a Function to the Rows or Columns of a MatrixIf mat is a matrix and fun is a function(such as mean,var,lm.)that takes a vector as its arguments,thenapply(mat,1,fun)applies fun to each row of matapply(mat,2,fun)applies fun to each column of matIn either case,the output is a vector.5/6/202422Jeff Lin,MD.PhD.applyapply(arr,margin,fct)Apply the function fct along some dimensions of the array arr,according to margin,and return a vector or array of the appropriate size.x ,1,2,31,5 7 02,7 9 83,4 6 74,6 3 5 apply(x,1,sum)1 12 24 17 14 apply(x,2,sum)1 22 25 20 5/6/202423Jeff Lin,MD.PhD.lapplyWhen the same or similar tasks need to be performed multiple times for all elements of a list or for all columns of an array.May be easier and faster than“for”loopslapply(li,function)To each element of the list li,the function function is applied.The result is a list whose elements are the individual function results.li=list(klaus,martin,georg)lapply(li,toupper)1 1 KLAUS 2 1 MARTIN 3 1 GEORG5/6/202424Jeff Lin,MD.PhD.Relatives of“apply”lapply(list,fun)applies the function to every element of listtapply(x,factor,fun)uses the factor to split x into groups,and then applies fun to each group5/6/202425Jeff Lin,MD.PhD.sapplysapply(li,fct)Like apply,but tries to simplify the result,by converting it into a vector or array of appropriate size li=list(klaus,martin,georg)sapply(li,toupper)1 KLAUS MARTIN GEORG fct sapply(1:5,fct),1,2,3,4,51,1 2 3 4 52,1 4 9 16 253,1 8 27 64 1255/6/202426Jeff Lin,MD.PhD.Frequently Used Operators-Assign+Sum-Difference*Multiplication/DivisionExponent%Mod%*%Dot product%/%Integer division%in%Subset|Or&AndGreater=Greater or=!Not!=Not equal=Is equal5/6/202427Jeff Lin,MD.PhD.Frequently Used FunctionscConcatenatecbind,rbindConcatenate vectorsminMinimummaxMaximumlength#valuesdim#rows,colsfloorMax integer inwhichTRUE indicestableCountssummary Generic stats Sort,order,rankSort,order,rank a vectorprintShow valuecatPrint as charpastec()as charroundRoundapplyRepeat over rows,cols5/6/202428Jeff Lin,MD.PhD.Statistical Functionsrnorm,dnorm,pnorm,qnormNormal distribution random sample,density,cdf and quantileslm,glm,anovaModel fittingloess,lowessSmooth curve fittingsampleResampling(bootstrap,permutation).Random.seedRandom number generationmean,median Location statisticsvar,cor,cov,mad,rangeScale statisticssvd,qr,chol,eigenLinear algebra5/6/202429Jeff Lin,MD.PhD.Graphical FunctionsplotGeneric plot eg:scatterpointsAdd pointslines,ablineAdd linestext,mtextAdd textlegendAdd a legendaxisAdd axesboxAdd box around all axesparPlotting parameters(lots!)colors,paletteUse colors5/6/202430Jeff Lin,MD.PhD.Probability Distributions5/6/202431Jeff Lin,MD.PhD.Probability Distributionsnorm,binom,beta,cauchy,chisq,exp,f,gamma,geom,hyper,lnorm,logis,nbinom,t,unif,weibull,wilcoxFour prefixes:d for density(PDF)p for distribution(CDF)q for quantile(percentiles)r for random generation(simulation)Each distribution has arguments that need to be specifiedi.e.,dnorm,pnorm,qnorm,rnorm5/6/202432Jeff Lin,MD.PhD.Probability DistributionsCumulative distribution function P(X x):p for the CDFProbability density function:d for the density,Quantile function(given q,the smallest x such that P(X x)q):q for the quantilesimulate from the distribution:r5/6/202433Jeff Lin,MD.PhD.Probability DistributionsDistribution R name additional argumentsbeta beta shape1,shape2,ncpbinomial binom size,probCauchy cauchy location,scalechi-squared chisq df,ncpexponential exp rateF f df1,df1,ncpgamma gamma shape,scalegeometric geom probhypergeometric hyper m,n,klog-normal lnorm meanlog,sdloglogistic logis;negative binomial nbinom;normal norm;Poisson pois;Students t t;uniform unif;Weibull weibull;Wilcoxon wilcox5/6/202434Jeff Lin,MD.PhD.Thanks!5/6/202435Jeff Lin,MD.PhD.ThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPeMaJ7F0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRf8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcG5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1%s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThQeMbJ7G4D1z-w*tXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMa5/6/202436Jeff Lin,MD.PhD.
展开阅读全文