R 汇总函数和时间
R summary function and times
R 汇总函数如何汇总表示为 HH:MM:SS 个字符串的时间值?
例如,导入以下 CSV 文件时:
name,time
name-a,1:00:00
name-b,1:15:00
name-c,1:30:00
name-d,1:45:00
name-e,2:00:00
汇总函数的默认使用 "only" 将 HH:MM:SS 时间列为不同的字符串。
> summary(times)
name time
name-a:1 1:00:00:1
name-b:1 1:15:00:1
name-c:1 1:30:00:1
name-d:1 1:45:00:1
name-e:1 2:00:00:1
我希望汇总功能将时间理解为 HH:MM:SS 时间值并显示类似于以下内容的汇总:
> summary(times)
time
Min. :1:00:00
1st Qu.:1:15:00
Median :1:30:00
Mean :1:30:00
3rd Qu.:1:45:00
Max. :2:00:00
尝试 chron
包及其 times
功能。
times$time<-times(times$time)
summary(times)
# name time
#name-a:1 Min. :01:00:00
#name-b:1 1st Qu.:01:15:00
#name-c:1 Median :01:30:00
#name-d:1 Mean :01:30:00
#name-e:1 3rd Qu.:01:45:00
# Max. :02:00:00
由于 'time' 列存储为字符串,因此 R 无法计算其上的任何摘要统计信息。
只需将您的时间戳转换为任何适当的时间格式即可。
library(lubridate)
times <- data.frame(name = c("name-a",
"name-b",
"name-c",
"name-d",
"name-e"),
time = c("1:00:00",
"1:15:00",
"1:30:00",
"1:45:00",
"2:00:00"))
times$time <- hms(times$time)
summary(times)
输出:
> summary(times)
name time
name-a:1 Min. :1H 0M 0S
name-b:1 1st Qu.:1H 15M 0S
name-c:1 Median :1H 30M 0S
name-d:1 Mean :1H 30M 0S
name-e:1 3rd Qu.:1H 45M 0S
Max. :2H 0M 0S
这里我以 lubridate 包为例,但还有其他选项(检查 ?as.POSIXct 或 ?strptime)
您可以试试strptime
函数,然后使用summary(times)
>times$time = strptime(times$time,%H:%M:%S")
> summary(times)
name time
name-a:1 Min. :2015-10-21 01:00:00
name-b:1 1st Qu.:2015-10-21 01:15:00
name-c:1 Median :2015-10-21 01:30:00
name-d:1 Mean :2015-10-21 01:30:00
name-e:1 3rd Qu.:2015-10-21 01:45:00
Max. :2015-10-21 02:00:00
R 汇总函数如何汇总表示为 HH:MM:SS 个字符串的时间值?
例如,导入以下 CSV 文件时:
name,time
name-a,1:00:00
name-b,1:15:00
name-c,1:30:00
name-d,1:45:00
name-e,2:00:00
汇总函数的默认使用 "only" 将 HH:MM:SS 时间列为不同的字符串。
> summary(times)
name time
name-a:1 1:00:00:1
name-b:1 1:15:00:1
name-c:1 1:30:00:1
name-d:1 1:45:00:1
name-e:1 2:00:00:1
我希望汇总功能将时间理解为 HH:MM:SS 时间值并显示类似于以下内容的汇总:
> summary(times)
time
Min. :1:00:00
1st Qu.:1:15:00
Median :1:30:00
Mean :1:30:00
3rd Qu.:1:45:00
Max. :2:00:00
尝试 chron
包及其 times
功能。
times$time<-times(times$time)
summary(times)
# name time
#name-a:1 Min. :01:00:00
#name-b:1 1st Qu.:01:15:00
#name-c:1 Median :01:30:00
#name-d:1 Mean :01:30:00
#name-e:1 3rd Qu.:01:45:00
# Max. :02:00:00
由于 'time' 列存储为字符串,因此 R 无法计算其上的任何摘要统计信息。 只需将您的时间戳转换为任何适当的时间格式即可。
library(lubridate)
times <- data.frame(name = c("name-a",
"name-b",
"name-c",
"name-d",
"name-e"),
time = c("1:00:00",
"1:15:00",
"1:30:00",
"1:45:00",
"2:00:00"))
times$time <- hms(times$time)
summary(times)
输出:
> summary(times)
name time
name-a:1 Min. :1H 0M 0S
name-b:1 1st Qu.:1H 15M 0S
name-c:1 Median :1H 30M 0S
name-d:1 Mean :1H 30M 0S
name-e:1 3rd Qu.:1H 45M 0S
Max. :2H 0M 0S
这里我以 lubridate 包为例,但还有其他选项(检查 ?as.POSIXct 或 ?strptime)
您可以试试strptime
函数,然后使用summary(times)
>times$time = strptime(times$time,%H:%M:%S")
> summary(times)
name time
name-a:1 Min. :2015-10-21 01:00:00
name-b:1 1st Qu.:2015-10-21 01:15:00
name-c:1 Median :2015-10-21 01:30:00
name-d:1 Mean :2015-10-21 01:30:00
name-e:1 3rd Qu.:2015-10-21 01:45:00
Max. :2015-10-21 02:00:00