gpt4 book ai didi

r - 删除 R 中某个点之后的行

转载 作者:行者123 更新时间:2023-12-03 08:35:19 26 4
gpt4 key购买 nike

我有一个数据集,我想在某个列值出现后删除行

数据集示例:

a<-data.frame(Account=c('A','A','A','A','A','A','A','A','A'),
ProcessDate=seq(as.Date('2020-01-01'),as.Date('2020-09-01'),by='month'),
Payment=c(1,2,3,4,5,6,7,8,9),
ColumnCriteria=c(610,610,610,610,610,650,610,610,610))

我想删除 ColumnCriteria = 650 之后的行。

我的问题是,我正在处理一个大型数据集,因此我不能只使用带有一些滞后filter函数,因为本例中的650位于何处,对于另一个帐户来说会有所不同。

我想我可能会编写一个 if_else 语句,其中如果 ColumnCriteria 等于 650,则返回日期,然后我可以尝试用该日期填充该列,然后过滤行其中 ProcessDate 较大。这看起来有点困惑,所以我想我应该联系一下,看看是否有人有任何建议。

谢谢!

最佳答案

考虑slice :

library(dplyr)

slice(a, 1:which(ColumnCriteria == 650, arr.ind = TRUE))

Account ProcessDate Payment ColumnCriteria
1 A 2020-01-01 1 610
2 A 2020-02-01 2 610
3 A 2020-03-01 3 610
4 A 2020-04-01 4 610
5 A 2020-05-01 5 610
6 A 2020-06-01 6 650

注意:如果截止值出现多次,则此表达式将仅使用该值的第一个实例(按 a 的行顺序排序)。

关于r - 删除 R 中某个点之后的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63980937/

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