全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2252 3
2018-09-28
代码如下:
sumfor <- function(x){
  a <- numeric(0)
  m <- 1
  for(i in x){
  if((class(x) != 'numeric') & (class(x) != 'interge')) {
    print('请输入一个数值型向量')
  } else {
     if(length(x)/2 != 0){
        x <- x[length(x)-1]
        a[i] <- x[m]+x[m+1]
        m <- m+2
     } else{
        a[i] <- x[m]+x[m+1]
        m <- m+2
      }
    }
  }
  print(a)
}
sumfor(c(1,5))的输出结果为
> sumfor(c(1,5))
[1] NA NA NA NA NA

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2018-9-28 13:42:30
有没有大神帮看看。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-9-28 14:54:13
x <- x[length(x)-1] 这样你的x只剩一个数了
x <- x[1-length(x)] 试试
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-9-28 19:36:34
1-lenght的话返回的x也只剩一个数了,
我研究了下发现这样写应该行
sumfor <- function(x){
  a <- numeric(0)
  m <- 1
  b <- 1
  for(i in x){
  if((class(i) != 'numeric') & (class(i) != 'interge')) {
    print('请输入一个数值型向量')
  } else {
     if(length(x)%%2 != 0){
        x <- x[1:(length(x)-1)]
        a[b] <- x[m]+x[m+1]
        b <- b+1
        m <- m+2
        if(m>=length(x)){
          break
        }
     } else{
        a[b] <- x[m]+x[m+1]
        b <- b+1
        m <- m+2
        if(m>=length(x)){
          break
        }
      }
  }
   
  }
  print(a)
}
sumfor(c(1,5,4,6,7))
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群