R语言之for循环

R语言之for循环

注:来源为李东风R语言教程
使用for循环的注意事项:
如果对向量每个元素遍历并保存结果, 应在循环之前先将结果变量产生等长的存储, 在循环内为已经分配好存储空间的输出向量的元素赋值。 为了产生长度为n的数值型向量,用numeric(n); 为了产生长度为n的列表,用vector(“list”, n)。
对一个向量元素遍历时如果用下标访问, 需要用seq_along(x)的做法而不是1:length(x)的做法。
如果直接对向量元素遍历, 这有可能会丢失向量的属性(如日期型), 用下标访问则不存在此问题

x <- c(0.2,0.4,0.9,0.9)
seq_along(x)#按照向量下标进行循环
[1] 1 2 3 4
set.seed(106)
x <- rnorm(5)
y <- numeric(length(x))
for(i in 1:5){
  if(x[i]>=0){
    y[i] <- 8}else{
      y [i] <- 7}
}
print(y)
x <- 0;s <- 0;n <- 5;
for(i in 1:n){
  x <- 2*x+3
  s <- s+x
}
s
#if(条件){表达式}else{表达式}
#注意/*,/%,/&均为字符后面直接紧接
x <- c(0.2,0.3,0.9)
for(i in seq(along=x)){
  if(x[i]<=0.25){
    cat("我/*")
  }else if(x[i]<=0.35){
    cat("爱/*")
  }else{
    cat("你/*")
  }
}
#注意/n后面紧跟符号的用法
x <- c(0.2,0.3,0.9)
for(i in seq(along=x)){
  if(x[i]<=0.25){
    cat("我\n")
  }else if(x[i]<=0.35){
    cat("爱\n*")
  }else{
    cat("你\n$")
  }
}
#注意1:seq_along(x)与直接seq_along(x)的区别
x <- c(0.2,0.2,0.3)
for(i in seq(along=x)){
  print(x[i])
}
x <- c(0.2,0.2,0.3)
for(i in 1:seq(along=x)){
  print(x[i])
}
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值