
程序一般有三种结构,分别是顺序和分支以及循环,顺序结构就是一个个代码顺序执行相对简单,复杂编程主要用到条件分支结构和循环结构。
1.分支结构
分支结构语句 if.......else.
a=1
if (a>0) {
+print('a大于0')
+} else {print('a小于0')
+}
[1] "a大于0"
2.循环结构
for (i in 1:4) {
+i <- i+1
+print(i)
+}
[1] 2
[1] 3
[1] 4
[1] 5
i=1
while(i<=4) {
+i <- i+1
+print(i)
+}
[1] 2
[1] 3
[1] 4
[1] 5
3.apply函数
3.1lapply与sapply:对列表进行循环。
lapply(x,fun,...) #x为列表,fun为循环函数
sapply(x,fun,...,simplify =TRUE) # simplify 是否简化结果
x = list(a =1:5,b =rnorm(10)) #生成两组向量,其中b是10个服从标准正态分布的随机数
x
$a
[1] 1 2 3 4 5
$b
[1] -0.48908282 0.20934463 -0.09036247 0.19041982 -0.93770103 -0.77648026 -1.84829272 0.15146183 0.30512533
[10] -0.82211607
lapply(x,mean)
$a
[1] 3
$b
[1] -0.4107684
sapply(x,mean)
a b
3.0000000 -0.4107684
3.2 apply:应用某函数到一个数组上
apply(x,margin,fun,.....) #x为矩阵或数组,margin对象为矩阵时,1表示行2表示列
x =matrix(rnorm(6),2,3)
x
[,1] [,2] [,3]
[1,] -1.120275 -0.1641202 -1.2437288
[2,] 0.730618 0.5825271 -0.3070289
apply(x,2,mean) #对数据框列进行循环
[1] -0.1948284 0.2092035 -0.7753789
apply(x,1,mean) #对数据框行进行循环
[1] -0.8427079 0.3353721
网友评论