热线电话:13121318867

登录
2018-10-25 阅读量: 824
R里的循环笔记分享(1)

比如两个变量i,j

i=1:4 j=1:30

公式y=j+10i

计算出的y是矩阵

这个循环该怎么写呢?

解:

i <- 1:4; j <- 1:30; # i and j

ni<- length(i); nj <- length(j) # lengths of i and j

y <- matrix(NA, nj, ni) # initiate a matrix with nj rows and ni columns

for (k in 1:ni){

for (p in 1:nj){

y [p, k] <- i[k] * 10 + j[p] # fill the matrix

}

}

一个更简洁的方法:

matrix(rep(i, each=nj) * 10+rep(j, ni), nj, ni)

例子1

## if与条件判断

fun.test <- function(a, b, method = "add"){

if(method == "add") { ## 如果if或者for/while;

res <- a + b ## 等后面的语句只有一行,则无需使用花括号。

}

if(method == "subtract"){

res <- a - b

}

return(res) ## 返回值

}

### 检验结果

fun.test(a = 10, b = 8, method = "add")

fun.test(a = 10, b = 8, method = "substract")

for循环有些时候是必须要用到的,for循环内部,往往需要用下标,访问数据内的一定元素,例如向量内的元素,这时候用方括号表示。一维的数据组合,或者数组,常常称为向量。二维的数据组合,往往称为矩阵,或者数据框。具体的访问方式主要是方括号内部有没有逗号的区别。for循环或者while循环有时候让人觉得比较困惑,可能需要专门的时间进行讲解。

0.0000
1
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子