全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1099 4
2017-10-23
QQ截图20171023220207_副本.png
这是一道练习题的描述,根据这个我写出了代码:
sumforfun <- function(x){
  if(is.numeric(x)=F){
    print('您输入错误')
    break
  }
  else{
    n <- length(x)
    a <- numeric(as.integer(n/2))
    if(n%%2=0){
    for(i in 1:n/2){
      a<-x[1+2^(i-1)]+x[2+2^(i-1)]
    }
  }else{
    for(i in 1:(n-1)/2){
      a<-x[1+2^(i-1)]+x[2+2^(i-1)]
    }
  }
  }
  return(a)
}

但结果却显示
QQ截图20171023221129.png
求大神们帮忙指导下
附件列表
QQ截图20171023220207_副本.png

原图尺寸 57.07 KB

QQ截图20171023220207_副本.png

QQ截图20171023220207.png

原图尺寸 56.35 KB

QQ截图20171023220207.png

QQ截图20171023220207.png

原图尺寸 56.35 KB

QQ截图20171023220207.png

二维码

扫码加我 拉你入群

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

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

全部回复
2017-10-23 23:07:54
sumforfun <- function(v){
  if(mode(v) != "numeric"){
    print("wrong input")
  }
  y <- c()
  z <- length(v)
  if(z%%2 == 0){
    for(i in 1:(z/2)){
      y <- sum(v[2*i-1],v[2*i])
    }
  }else{
    z <- length(v[1:z-1])
    for(i in 1:(z/2)){
      y <- sum(v[2*i-1],v[2*i])
    }
  }
  return(y)
  
}
这样有个缺点,就是必须奇偶相间的,如果是c(1,2,2,3,5,6)这样的话就会出错,可以试着更改一下

二维码

扫码加我 拉你入群

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

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

2017-10-23 23:14:06
飞天玄舞6 发表于 2017-10-23 23:07
sumforfun
请问我之前的函数在哪些地方有错误?
二维码

扫码加我 拉你入群

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

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

2017-10-23 23:17:25
看你的出错结果应该是整个函数没有一起运行吧
二维码

扫码加我 拉你入群

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

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

2017-10-23 23:28:48
飞天玄舞6 发表于 2017-10-23 23:17
看你的出错结果应该是整个函数没有一起运行吧
刚才又试了下,不是整个函数没运行,而是犯了一个巨低级的错误。。。判断语句貌似得==而不能=
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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