1.函数入门
R语言编程的核心是“函数”,函数就是一组指令的集合,用来读取输入、执行计算、返回结果。
如:定义一个函数oddcount(),计算整数向量中奇数的个数。
oddcount<-function(x){
flag<-rep(0,length(x))
for(i in 1:length(x)){
if(x[i] %% 2 == 1){
flag[i] = 1
}else{ ###这步可以删掉
flag[i] = 0
}
}
print(sum(flag))
}
x<-c(1,3,4,4,7,9,8,76,65)
oddcount(x)
修改版本:
oddcount<-function(x){
flag<-rep(0,length(x))
for(i in 1:length(x)){
if(x[i] %% 2 == 1){
flag[i] = 1
}
}
print(sum(flag))
}
但是,R语言编程要尽可能避免使用循环,如不能避免,则使循环更简洁。
在这里,X是形参(formal argument/parameter)
c()是实参(actual argument)
oddcount<-function(x){
flag<-0
for(i in x){
if(i %% 2 == 1){
flag <- flag + 1
}
}
return(flag)
}
2.变量的作用域
局部变量:在函数体内部可见的变量。如:flag和i都是局部变量。
局部变量在函数返回值以后就撤销了。在R中,形参是局部变量。全局变量:在函数之外创建的变量。全局变量的值在函数中可以通过赋值给形参而发生改变。