R-使用不同列中的特定值的最大值和最小值函数

R-使用不同列中的特定值的最大值和最小值函数,r,dplyr,shiny,shiny-server,R,Dplyr,Shiny,Shiny Server,在我自己的项目中,我有一个较小的数据框,它只包含2列,是从一个较大的数据框中子集的 我正在处理的两列是“Lap..”和“Timestamp..s.” 我想从特定圈数中获得最小时间戳和最大时间戳 现在我的重点是对特定圈数进行硬编码 这是我的密码: time_df <- csv_to_Table[c("Lap..", "Timestamp..s." )] #output data to csv to make sure that it is correct write.csv(time_df,

在我自己的项目中,我有一个较小的数据框,它只包含2列,是从一个较大的数据框中子集的

我正在处理的两列是“Lap..”和“Timestamp..s.”

我想从特定圈数中获得最小时间戳和最大时间戳

现在我的重点是对特定圈数进行硬编码

这是我的密码:

time_df <- csv_to_Table[c("Lap..", "Timestamp..s." )]
#output data to csv to make sure that it is correct
write.csv(time_df, file = "data/lap_timestamp.csv")
output$time_test <- renderText({
  max(time_df$Timestamp..s.) - min(time_df$Timestamp..s.)
})

time\u df您也可以使用
aggregate()
。如果我正确理解您,您的数据如下所示:

# Make up some data
set.seed(1)
df = data.frame(Lap = sample(1:10, size = 20, replace = TRUE),
                Timestamp = sample(seq.POSIXt(from = ISOdate(2017,1,1), to = ISOdate(2017,06,1), by = "day"), size = 20, replace = TRUE))
然后使用
aggregate()
获取每个圈数的最小值或最大值:

aggregate(Timestamp ~ Lap, data = df, FUN = min)
aggregate(Timestamp ~ Lap, data = df, FUN = max)
输出:

  > aggregate(Timestamp ~ Lap, data = df, FUN = min)
   Lap           Timestamp
1    1 2017-02-21 13:00:00
2    2 2017-04-02 14:00:00
3    3 2017-02-10 13:00:00
4    4 2017-01-29 13:00:00
5    5 2017-04-12 14:00:00
6    6 2017-04-10 14:00:00
7    7 2017-02-28 13:00:00
8    8 2017-03-04 13:00:00
9    9 2017-02-28 13:00:00
10  10 2017-01-03 13:00:00

 > aggregate(Timestamp ~ Lap, data = df, FUN = max)
   Lap           Timestamp
1    1 2017-02-21 13:00:00
2    2 2017-04-02 14:00:00
3    3 2017-05-23 14:00:00
4    4 2017-04-21 14:00:00
5    5 2017-04-12 14:00:00
6    6 2017-04-10 14:00:00
7    7 2017-05-13 14:00:00
8    8 2017-05-06 14:00:00
9    9 2017-02-28 13:00:00
10  10 2017-01-20 13:00:00

请提供好的示例代码:关于这个问题,让想要帮助你的人的生活更轻松。如果您想使用dplyr,您可以使用group_by and Summary:
time_df%%>%group_by(Lap)%%>%summary(maxT=max(Timestamp..s..),minT=min(Timestamp..s.)%%>%mutate(diff=maxT minT)
  > aggregate(Timestamp ~ Lap, data = df, FUN = min)
   Lap           Timestamp
1    1 2017-02-21 13:00:00
2    2 2017-04-02 14:00:00
3    3 2017-02-10 13:00:00
4    4 2017-01-29 13:00:00
5    5 2017-04-12 14:00:00
6    6 2017-04-10 14:00:00
7    7 2017-02-28 13:00:00
8    8 2017-03-04 13:00:00
9    9 2017-02-28 13:00:00
10  10 2017-01-03 13:00:00

 > aggregate(Timestamp ~ Lap, data = df, FUN = max)
   Lap           Timestamp
1    1 2017-02-21 13:00:00
2    2 2017-04-02 14:00:00
3    3 2017-05-23 14:00:00
4    4 2017-04-21 14:00:00
5    5 2017-04-12 14:00:00
6    6 2017-04-10 14:00:00
7    7 2017-05-13 14:00:00
8    8 2017-05-06 14:00:00
9    9 2017-02-28 13:00:00
10  10 2017-01-20 13:00:00