仅在 R 中以秒为单位转换带有分钟和秒的列
Convert column with minutes and seconds in seconds only in R
我的数据框有这种格式:
name <- c("Carlos", "Matthew", "Toth", "Mike", "Joseph", "Andrey")
time <- c("79:45","78","74:45","65:30","64","57")
myexample <- cbind.data.frame(name, time)
> myexample
nane time
1 Carlos 79:45
2 Matthew 78
3 Toth 74:45
4 Mike 65:30
5 Joseph 64
6 Andrey 57
如何以秒为单位转换两种格式(“79:45”和“78”)的时间列?
时间栏是字符格式:(
作为输出:
> myexample
nane time
1 Carlos 79:45
2 Matthew 78:00
3 Toth 74:45
4 Mike 65:30
5 Joseph 64:00
6 Andrey 57:00
这是一个使用 sub
的选项:
myexample$time <- sub("^(\d{1,})$", "\1:00", myexample$time)
myexample
name time
1 Carlos 79:45
2 Matthew 78:00
3 Toth 74:45
4 Mike 65:30
5 Joseph 64:00
6 Andrey 57:00
通常最好的做法是将您的文本时间解析为某种正式的时间类型。但由于您存储的是非标准值,分钟部分可能大于 60,因此我暂时选择将其保留为文本。
一个选项可以使用 grepl
来检测是否存在 :
并在值 :
中附加 :00
不存在。
myexample$time <- ifelse(grepl(":",myexample$time), as.character(myexample$time),
paste0(myexample$time, ":00"))
myexample
# name time
# 1 Carlos 79:45
# 2 Matthew 78:00
# 3 Toth 74:45
# 4 Mike 65:30
# 5 Joseph 64:00
# 6 Andrey 57:00
我的数据框有这种格式:
name <- c("Carlos", "Matthew", "Toth", "Mike", "Joseph", "Andrey")
time <- c("79:45","78","74:45","65:30","64","57")
myexample <- cbind.data.frame(name, time)
> myexample
nane time
1 Carlos 79:45
2 Matthew 78
3 Toth 74:45
4 Mike 65:30
5 Joseph 64
6 Andrey 57
如何以秒为单位转换两种格式(“79:45”和“78”)的时间列?
时间栏是字符格式:(
作为输出:
> myexample
nane time
1 Carlos 79:45
2 Matthew 78:00
3 Toth 74:45
4 Mike 65:30
5 Joseph 64:00
6 Andrey 57:00
这是一个使用 sub
的选项:
myexample$time <- sub("^(\d{1,})$", "\1:00", myexample$time)
myexample
name time
1 Carlos 79:45
2 Matthew 78:00
3 Toth 74:45
4 Mike 65:30
5 Joseph 64:00
6 Andrey 57:00
通常最好的做法是将您的文本时间解析为某种正式的时间类型。但由于您存储的是非标准值,分钟部分可能大于 60,因此我暂时选择将其保留为文本。
一个选项可以使用 grepl
来检测是否存在 :
并在值 :
中附加 :00
不存在。
myexample$time <- ifelse(grepl(":",myexample$time), as.character(myexample$time),
paste0(myexample$time, ":00"))
myexample
# name time
# 1 Carlos 79:45
# 2 Matthew 78:00
# 3 Toth 74:45
# 4 Mike 65:30
# 5 Joseph 64:00
# 6 Andrey 57:00