楼主: wx2123
4130 1

[问答] 一个算法问题 [推广有奖]

  • 1关注
  • 2粉丝

硕士生

67%

还不是VIP/贵宾

-

威望
0
论坛币
5650 个
通用积分
221.8077
学术水平
1 点
热心指数
5 点
信用等级
0 点
经验
3111 点
帖子
93
精华
0
在线时间
188 小时
注册时间
2015-9-10
最后登录
2024-2-20

楼主
wx2123 在职认证  发表于 2022-2-14 06:01:47 |只看作者 |坛友微信交流群|倒序 |AI写论文
相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币


df.png

#-----------------------------------------

有一个表格,包括id, t, dm, s这4列。其中

* id有重复。这里只列出id = 1,2的情况,但是真实数据中还有很多,id=1,2,...,100.

* t可以理解为时间,1-7天,或者1-7月等等。

* dm是另一个参数。

* s是一些要计算的数值。

根据这些来计算x的值。

#--------------------------------------------

计算过程是这样的:

第一,找到每一个id的最后一行。如果是最后一行,那么lastrow = 1,否则就是0.这个我已经搞定。

第二,根据t和dm的值,计算x在每个id最后一行的值(其他行x的值不用计算)。比方说,id = 1时,最后1行的t = 7,dm = 4。那么t - dm = 3。然后就从s的第三行开始累加n行。例如当n = 4时,x = 77+80+97+26=280。这个我也已经搞定了。

#--------------------------------

我的问题是n=2时的情况。最后1行的t=7,dm=3。那么t-dm=4。这时x应该等于5+45+85+35=170。这个我算出来的数(218)就不对了。

#---------------------------------

最后还有一个条件,就是累计n行不能超过最后一行。例如id=1,n=6时,x = 77+80+97+26+15=295。而不能加上下面的id=2里面的4。


请问这个用R如何实现?


# ---------------------------------------

id <- c(1,1,1,1,1,1,1,2,2,2,2,2,2,2)

t <- c(1,2,3,4,5,6,7,1,2,3,4,5,6,7)

dm <- c(4,4,4,4,4,4,4,3,3,3,3,3,3,3)

s  <- c(15,66,77,80,97,26,15,4,8,3,5,45,85,35)

df <- data.frame(id,t,dm,s)


二维码

扫码加我 拉你入群

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

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

关键词:astro Last 如何实现 我的问题

沙发
owenqi 在职认证  学生认证  发表于 2022-2-14 11:26:29 |只看作者 |坛友微信交流群
看不明白你想表达什么,你提到
那么t - dm = 3。然后就从s的第三行开始累加n行。例如当n = 4时,x = 77+80+97+26=280。
然后又说
n = 2时的情况。最后1行的 t=7,dm=3。那么t - dm=4。这时x应该等于5+45+85+35=170。
按你前面的描述,不是应该从第4行开始累加2行,也就是x = 5 + 45 = 50吗?
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

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

使用道具

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

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

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

GMT+8, 2024-4-27 23:03