我在日期字段上使用reshape函数,并想知道是否有办法更改重新整形表中列出的字段的顺序。 我尝试在重塑之前对原始表进行排序,但它没有用。
DQ_Summary= data.frame(RuleID=c(1,2,1,2),
ProcessorTimeStamp=as.Date(c('2016-08-04','2016-08-04','2016-08-08','2016-08-08')),
ErrorCount=c(6,8,3,4))
# RuleID ProcessorTimeStamp ErrorCount
# 1 1 2016-08-04 6
# 2 2 2016-08-04 8
# 3 1 2016-08-08 3
# 4 2 2016-08-08 4
Final_Summary = reshape(DQ_Summary,
timevar = "ProcessorTimeStamp",
idvar = c("RuleID"),
direction = "wide")
上面的代码返回一个格式为:
的表# RuleID ErrorCount.2016-08-04 ErrorCount.2016-08-08
# 1 1 6 3
# 2 2 8 4
我希望看到字段重新整形字段的顺序颠倒过来:
# RuleID ErrorCount.2016-08-08 ErrorCount.2016-08-04
# 1 1 3 6
# 2 2 4 8
这看似微不足道,但这是我需要的东西。
答案 0 :(得分:0)
在我们将'ProcessorTimeStamp'转换为dcast
并将reshape2
指定为factor
日期后,levels
的{{1}}更容易处理反方向
unique
或者可以使用library(reshape2)
DQ_Summary$ProcessorTimeStamp <- factor(DQ_Summary$ProcessorTimeStamp,
levels = as.character(sort(unique(as.Date(DQ_Summary$ProcessorTimeStamp)),
decreasing = TRUE)))
dcast(DQ_Summary, RuleID~ProcessorTimeStamp, value.var = "ErrorCount")
dplyr/tidyr