【发布时间】:2016-01-08 17:54:37
【问题描述】:
我有一个格式为
的数据集2037-12-31 06:30:06
我已经尝试以递减格式对其进行排序
我试过了
让数据集名称为dataset 和列Timestamp
我试过了
dataset[order(as.Date(dataset$Timestamp,format="%d%m%Y%H%M%s"),decreasing=TRUE),]
但是还是不行
【问题讨论】:
标签: r
我有一个格式为
的数据集2037-12-31 06:30:06
我已经尝试以递减格式对其进行排序
我试过了
让数据集名称为dataset 和列Timestamp
我试过了
dataset[order(as.Date(dataset$Timestamp,format="%d%m%Y%H%M%s"),decreasing=TRUE),]
但是还是不行
【问题讨论】:
标签: r
首先让我们准备一些模拟数据:
text <- "Timestamp data1 data2
'2037-12-31 06:30:06' 0.618 1.41
'2037-12-31 07:30:20' 42 42
'2016-01-08 19:15:00' 77 124
'2035-10-09 08:05:01' 3.141 98"
dataset <- read.table(text=text, header = TRUE)
现在数据存储在一个名为dataset的data.frame中:
> dataset
Timestamp data1 data2
1 2037-12-31 06:30:06 0.618 1.41
2 2037-12-31 07:30:20 42.000 42.00
3 2016-01-08 19:15:00 77.000 124.00
4 2035-10-09 08:05:01 3.141 98.00
为了根据日期和时间重新排列行,可以使用as.POSIXlt() 转换Timestamp 列中的值。
那么数据可以按时间倒序重新排序:
> dataset[order(as.POSIXlt(dataset$Timestamp,format="%Y-%m-%d %H:%M:%s"),decreasing=TRUE),]
# Timestamp data1 data2
#2 2037-12-31 07:30:20 42.000 42.00
#1 2037-12-31 06:30:06 0.618 1.41
#4 2035-10-09 08:05:01 3.141 98.00
#3 2016-01-08 19:15:00 77.000 124.00
希望这会有所帮助。
【讨论】:
read.table() 和text。您的数据可能已经存储在 data.frame 中,因此您可以跳到代码的末尾。这里重要的部分是POSIXlt 的使用和format 说明符的精确形式。