使用R语言找到最大值前一行

3
我想找到R中最大值前一行的数据。数据框如下所示:
    timeround   n
1   01:00   11
2   02:00   6
3   03:00   4
4   04:00   4
5   05:00   7
6   06:00   22
7   07:00   63
8   08:00   142
9   09:00   155
10  10:00   220
11  11:00   143
12  12:00   98
13  13:00   111
14  14:00   115
15  15:00   129
16  16:00   128
17  17:00   102
18  18:00   90
19  19:00   108
20  20:00   92
21  21:00   90
22  22:00   102
23  23:00   44
24  24:00   20

目前,我能够使用以下代码显示最大值:

with(tweetcount, timeround[n== max(n)])

给我一个值“10:00”

如何计算R以给我最大值之前的值 - 在这种情况下是“9:00”?


@akrun 比我先完成了。 - alexwhitworth
由于看起来你正在处理24小时数据,值得指出的是,如果最大值在“01:00”,使用这种方法会得到一个空的数据框而不是24:00。不确定这对你是否有问题。 - ping
这是个好观点 @ping - 但很不可能出现01:00成为最大值。我想可以用一个“if函数”来解决 - 但在这里并不必要。 - Emil Lykke Jensen
1个回答

2
你可以使用 which
with(tweetcount, timeround[which(n== max(n))-1])

如果只有一个单独的max值。
 tweetcount$timeround[which.max(tweetcount$n)-1]

@EmilLykkeJensen 没问题。很高兴能帮助你。 - akrun
好的,我会完成 - 但是我还需要再等5分钟 ;) - Emil Lykke Jensen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接