楼主: gnbj99
1369 1

[问答] R语言 向量的累加问题 [推广有奖]

  • 0关注
  • 0粉丝

初中生

9%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
139 点
帖子
7
精华
0
在线时间
7 小时
注册时间
2021-1-19
最后登录
2021-2-27

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
现在有一个向量 x 为 [1,2,3,4,5,6,7,8,9,10]然后在向量 x 后补 4 个 0
即 [1,2,3,4,5,6,7,8,9,10,0,0,0,0]
设定 n 等于 4
那么生成新的向量为 y
想要结果为 [15,20,25,30,35,40,34,,27,19,10]

即 x[1] 等于 x[1]+x[2]+x[3]+x[4]+x[5]
x[2] 等于 x[2]+x[3]+x[4]+x[5]+x[6]
...
x[10]等于x[10]+0+0+0+0

这是我写的代码:
  1.   x <- 1:10
复制代码
得到结果是正确的
现在想让 n 可变
要怎样写循环 或者 直接用向量的方式得出答案
哪位大神能帮帮忙 在线等
二维码

扫码加我 拉你入群

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

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

关键词:R语言

回帖推荐

沙发
乐天天12300 发表于 2021-1-22 11:49:30 |只看作者 |坛友微信交流群
  1. myfunc <- function(x, n){
  2.   len <- length(x) - n + 1
  3.   y <- vector(length = len)
  4.   for (i in 1 : len){
  5.     y[i] <- sum(x[i : (n + i - 1)])
  6.   }
  7.   y
  8. }

  9. myfunc2 <- function(x, n){
  10.   len <- length(x) - n + 1
  11.   y <- vector(length = len)
  12.   y[1] <- sum(1 : n)
  13.   for (i in 2 : len){
  14.     y[i] <- y[i-1] - x[i-1] +x[i + n - 1]
  15.   }
  16.   y
  17. }

  18. system.time(myfunc(1:100000, 50))
  19. system.time(myfunc2(1:100000, 50))
复制代码
已有 2 人评分经验 学术水平 热心指数 信用等级 收起 理由
cheetahfly + 100 精彩帖子
Sunknownay + 3 + 3 + 3 热心帮助其他会员

总评分: 经验 + 100  学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-6 23:26