gpt4 book ai didi

r - 长数据 - 当每个人的第一个值 =X R 时删除所有行

转载 作者:行者123 更新时间:2023-12-01 23:43:11 25 4
gpt4 key购买 nike

我有一个类似于下面的长数据框。我想将数据框限制为第一次观察时年龄 <65 岁的人。注意苏在研究过程中年满 65 岁,我不想删除她的任何数据。这是因为她的第一个值 <65。

我尝试创建一个函数....我认为如果我可以为每个人的第一个值大于 65 时创建一个指示变量,那么我可以排除该人的行。

df$first<-ave(df$string, df$id, FUN=function(x) [1]>65)  ##wrong!



id string
1 pat 71
2 pat 72
3 pat 73
4 pat 74
5 tom 51
6 tom 52
7 tom 53
8 tom 54
9 sue 63
10 sue 64
11 sue 65
12 sue 66
13 mary 68
14 mary 69
15 mary 70
16 mary 71
17 harry 17
18 harry 18
19 harry 19
20 harry 20

任何人都可以阐明这一点吗?

最佳答案

你可以使用

df[as.logical(with(df, ave(string, id, FUN= function(x) x[1] < 65))),]

或者使用data.table

library(data.table)
setDT(df)[, .SD[string[1L] <65] , id]

关于r - 长数据 - 当每个人的第一个值 =X R 时删除所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30359393/

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