仅当另一列在R中具有良好的值时,才连续列的总和

克莱门特·波雷特

我目前有一个看起来像这样的数据框(时间以秒为单位,Zone1为布尔值):

Time Zone1
   1     0
   3     0
   4     1
   5     1
   6     1
   7     0
   9     1
   10    1

我想要连续条件的值之和,所以我会得到如下信息:

Time Zone1 TimeInZone
   1     0         NA
   3     0         NA
   4     1          2
   5     1          2
   6     1          2
   7     0         NA
   9     1          1
   10    1          1

像这样

我找不到该怎么办,该如何处理?谢谢。

编辑:更准确的数据框

tstenner

我不确定最后两行来自哪里,但这是我的看法:

library(data.table)
df <- data.table(Value=c(3,4,1,1,2), Criteria=c(1,1,2,1,3))
# First, generate a logical vector that indicates if the criterium changed:
df[, changed:=c(TRUE, Criteria[-1] != Criteria[-length(Criteria)])]
# Then, calculate the cumulative sum to get an index:
df[, index:=cumsum(changed)]
# Calculate the sum for each level of index:
df[, Sum:=sum(Value), by=index]
# print everything:
print(df)

结果:

   Value Criteria changed index Sum
1:     3        1    TRUE     1   7
2:     4        1   FALSE     1   7
3:     1        2    TRUE     2   1
4:     1        1    TRUE     3   1
5:     2        3    TRUE     4   2

要获得最后一个的总和,请使用一些data.table魔术:

setkey(df, index)
nextblocksums <- df[index!=max(index), .(index=index+1,nextBlockSum=Sum)]
df[ nextblocksums , LastBlocksSum:=i.nextBlockSum]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

SQL:仅当在同一行中另一列具有不同的值时,才返回一列的值

仅当另一列具有特定值时才恢复表上的更新更改的 SQL 触发器

MySQL:仅当另一列中的值唯一时才设置值

SQL Access,仅当另一列中的所有值都在指定范围内时,才求和一列的值

查找一列的重复项,但仅在另一列具有相同值时才返回结果

使用awk仅提取一列中具有不同字符且另一列相同的连续行

如何使用Python获取另一列中具有相同值的值的总和?

提供在另一列中具有连续值的名称列表

当另一列具有匹配值时,选择一列中具有最大值的行

仅当另一列的值满足条件时才获取列的分位数

如何仅当给定值存在于 Excel 的另一列中时才替换值

从 Pandas Dataframe 中选择一列中具有相同值而另一列中仅丢失的行

仅当存在前一行具有空值时才向前填充数据框中的一列

仅当满足另一列的条件时才填写

当另一列在熊猫中具有特定值时,用 NaN 替换列值

仅当一列的所有元素都在另一个表中时才匹配

SQL Server:仅当同一表中的另一列是特定值时,才如何强制在一列中使用NOT NULL?

Pandas - 仅当 MULTIPLE COLUMNs 为空时才用另一列的值填充一列

仅当另一列的值为DAX时,PowerBi才计算日期

仅当另一列的值更改SQL Server时才自动增加该值

仅当另一列的值为负时,Postgres 才选择最大 ID

按另一列分组但具有不同索引时的列总和

仅当其他列具有条件时,才对列中的唯一值进行计数

R:提取数据帧中另一列(y)至少具有+1的一列(x)的值

在 R 中,指示另一列的每个 ID 是否具有多个唯一值

仅当熊猫的某一列中存在某个值时,Groupby才进行计数

删除r中另一列中具有相同ID但值不同的行

DAX的一列中仅唯一值的总和

R中另一列中与年份匹配的列值的总和