编写函数
函数名 = function (参数 1,参数 2…)
{
函数体
函数返回值
}
std = function(x) { sqrt(var(x)) }
例1:无参数
welcome = function() print(“welcome to use R”)
welcome()
[1] “welcome to use R”
例2:单参数
welcome.sb = function(names) print(paste(“welcome”,names,”to use R”))
welcome.sb(“Mr fang”)
[1] “welcome Mr fang to\nuse R”
例3: t 统计量
sim.t=function(n){
mu=10;sigma=5;
x=rnorm(n,mu,sigma)
(mean(x)-mu)/(sd(x)/n)
}
sim.t(5)
[1] 1.902354
例4:
sim.t = function(n,mu=10,sigma=5){
x=rnorm(n,mu,sigma)
(mean(x)-mu)/(sd(x)/n)
}sim.t(5) # 样本含量为 5,均值为 10,标准差为 5
sim.t(5,0,1) # 样本含量为 5,均值为 0,标准差为 1
循环
for 循环的句法是:
for (变量 in 取值向量) {
表达式…
}
例1:
x.sum = function(x){
s = 0
for(i in 1:length(x)) s = s + x[i]
s
}
x.sum(x=1:10)
例2:
par(mfrow=c(2,2))
for(i in c(2,5,10,25)) hist(rt(100,df=i),breaks=10)
while(条件)
{循环体}
条件表达式
将一组数中的负数变成正数
abs.x=function(x){
if (x[x<0]) {x[x<0]=-x[x<0]}
x
}
abs.x(c(3,-3))
[1] 3 3
if(条件)表达式
或是
if(条件) {
表达式}
else{
表达式
}