gpt4 book ai didi

r - 以 R 中的第一个实例为条件子集数据

转载 作者:行者123 更新时间:2023-12-04 10:47:32 27 4
gpt4 key购买 nike

数据:

row A B 
1 1 1
2 1 1
3 1 2
4 1 3
5 1 1
6 1 2
7 1 3

大家好!我想要做的(上面的例子)是对 A 列中的这些值求和,但仅当 B 列 = 1 时(所以从一个简单的子集线开始 - 下面)。
sum(data$A[data$B==1])

但是,我只想这样做 第一 该条件发生的时间,直到值切换。如果该情况稍后在列(示例中的第 5 行)中再次出现,我对它不感兴趣!

我真的很感谢你在这个(我怀疑很简单)问题上的帮助!

最佳答案

使用 data.table为了语法优雅,您可以使用 rle完成这项工作

library(data.table)
DT <- data.table(data)
DT[ ,B1 := {
bb <- rle(B==1)
r <- bb$values
r[r] <- seq_len(sum(r))
bb$values <- r
inverse.rle(bb)
} ]

DT[B1 == 1, sum(a)]
# [1] 2

关于r - 以 R 中的第一个实例为条件子集数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16088349/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com