gpt4 book ai didi

R根据值的计数创建一个新的向量,直到现有向量的第一个值实例

转载 作者:行者123 更新时间:2023-12-04 22:59:39 26 4
gpt4 key购买 nike

我如何创建一个新变量“CountWK”,该变量基于“WK”中出现的值计数,直到“性能”中按“ID”分组的第一个“1”实例?

ID<-c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C', 'C', 'C')
WK<-c(1, 2, 3, 1, 2, 3, 1, 2, 3, 4, 5)
Performance<-c(0,1,1,0,1,0,0,1,0,1,1)
Data<-data.frame(ID, WK, Performance)

因此,对于 ID“A”CountWk 将是“2”,对于“B”“2”,对于 C“2”,除了包含第一个实例的行之外,每隔一行的“CountWk”中的值为 N/A “性能”中的“1”。

最佳答案

这是我将如何使用 data.table 来解决这个问题包裹

首先使用 .I 找到行索引和 match

library(data.table)
indx <- setDT(Data)[, .I[match(1L, Performance)], by = ID]$V1

然后分配 WKCountWk按那个索引
Data[indx, CountWk := WK][]
# ID WK Performance CountWk
# 1: A 1 0 NA
# 2: A 2 1 2
# 3: A 3 1 NA
# 4: B 1 0 NA
# 5: B 2 1 2
# 6: B 3 0 NA
# 7: C 1 0 NA
# 8: C 2 1 2
# 9: C 3 0 NA
# 10: C 4 1 NA
# 11: C 5 1 NA

关于R根据值的计数创建一个新的向量,直到现有向量的第一个值实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29591074/

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