楼主: liucong123a
2327 3

[问答] R 创建两两相加函数输出NA,不知道是不是哪里写错了 [推广有奖]

  • 0关注
  • 0粉丝

高中生

20%

还不是VIP/贵宾

-

威望
0
论坛币
1029 个
通用积分
0
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
137 点
帖子
13
精华
0
在线时间
28 小时
注册时间
2017-9-5
最后登录
2019-4-21

楼主
liucong123a 发表于 2018-9-28 11:50:06 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
代码如下:
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

二维码

扫码加我 拉你入群

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

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

关键词:不知道是不是 不知道 For Sum

沙发
liucong123a 发表于 2018-9-28 13:42:30
有没有大神帮看看。。

藤椅
jinkelazzz 发表于 2018-9-28 14:54:13
x <- x[length(x)-1] 这样你的x只剩一个数了
x <- x[1-length(x)] 试试
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

板凳
liucong123a 发表于 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))
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 鼓励积极发帖讨论

总评分: 论坛币 + 10   查看全部评分

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-1 03:58