全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1358 4
2022-08-03
请教大家一个问题,数据框有两列数据,如果其中一列与另外一列有如下关系,应该怎么处理

1 1
1 2
1 3
0 0
1 4
0 0
1 5


也就是如果第一列的值为1,那么第二列对应位置的值为第一列前面各行累加

比如 第一行  第一列 为1  , 第一行第二列为 1
比如 第二行  第一列 为1  , 第二行第二列为 1+1=2
比如 第三行  第一列 为1  , 第二行第二列为 1+1+1=3
比如  第五行  第一列为1   ,第五行第二列为 1+1+1+0+1=4
比如  第七行  第一列为1   ,第五行第二列为 1+1+1+0+1+1=5

如果第一列的值为0,那么第二列对应位置的值也为0

请问如何实现?谢谢





二维码

扫码加我 拉你入群

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

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

全部回复
2022-8-4 03:12:10
我把你的数据加了列名放在第一行,分别是“A” 和 “B”,然后存成 sample.csv

library(data.table)

a=fread("sample.csv")
a[A!=0,B:=cumsum(A)]
a[A==0, B:=0]

二维码

扫码加我 拉你入群

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

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

2022-8-4 21:44:09
df$b <- cumsum(df$a * a)
二维码

扫码加我 拉你入群

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

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

2022-8-5 11:50:09
cumsum(A) * (A!=0)
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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