R sqldf找到第二大
R sqldf find the second largest
我有一个这样的数据框数据
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")
我有一个这样的数据框数据
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")