R sqldf找到第二大
我有这样一个数据帧数据R sqldf找到第二大,r,sqldf,R,Sqldf,我有这样一个数据帧数据 data id time var1 1 a 3 0 2 a 2 2 3 a 1 3 4 b 3 2 5 b 4 6 我想得到每个id的第二大时间行,如下所示: data2 id time var1 1 a 2 2 2 b 3 2 我尝试使用sqldf sqldf("select * from data order by time desc limit 2,1 gr
data
id time var1
1 a 3 0
2 a 2 2
3 a 1 3
4 b 3 2
5 b 4 6
我想得到每个id的第二大时间行,如下所示:
data2
id time var1
1 a 2 2
2 b 3 2
我尝试使用sqldf
sqldf("select * from data order by time desc limit 2,1 group by id")
但我有一个错误:
Error in sqliteSendQuery(con, statement, bind.data) :
error in statement: near "group": syntax error
我还尝试:
select max(time),* from data where time not in(select max(time) from data group by id) group by id
但是我只得到了一个结果,我不能得到正确的答案
谢谢 尝试在值小于该id最大值的行中取最大值:
sqldf("select id, max(time) time, var1
from data a
where time < (select max(b.time)
from data b
where b.id = a.id)
group by id")
是否需要使用sqldf,或者您是否对其他方法感兴趣?dplyr看起来有点像SQL:df%>%group\U byid%>%arrangedesctime%>%slice2dplyr,谢谢!