【发布时间】:2016-10-11 10:30:41
【问题描述】:
我没完没了地寻找这个,但不知何故没有解决这个简单问题。
我有一个名为“价格”的数据框,其中有 4 列,其中一列是历史日期列表,另外三列是产品价格列表。
1 10/10/2016 53.14 50.366 51.87
2 07/10/2016 51.93 49.207 50.38
3 06/10/2016 52.51 49.655 50.98
4 05/10/2016 51.86 49.076 50.38
5 04/10/2016 50.87 48.186 49.3
6 03/10/2016 50.89 48.075 49.4
7 30/09/2016 50.19 47.384 48.82
8 29/09/2016 49.81 46.924 48.4
9 28/09/2016 49.24 46.062 47.65
10 27/09/2016 46.52 43.599 45.24
列表有 252 个价格。如何将我的输出与列表底部的最新日期一起存储,并在列表底部以最新价格列出相应的价格?
【问题讨论】:
-
如果
df是您的data.frame,则日期列称为date,并且您想按日期对数据集进行排序,只需尝试df[order(df$date),]。 -
还要确保您的
date列设置为as.Date -
OP 的日期不是
Date对象,不幸的是@Sotos。如果是的话,它将是一个 ISO 格式字符串。不过,我很好奇为什么显示顺序很重要(因为我们可以帮助他们进行依赖顺序的任何处理)。但是,由于 OP 似乎已经以相反的顺序拥有它并且知道行数df[252:1,]也可以工作。 -
使用 TTR 包中的 Bbands 计算布林带是原因。似乎该函数是自下而上计算的 - 如果我错了,请纠正我?
-
如果问题在于日期列是字符串格式,您可以使用@nicola 的解决方案进行调整:
df[order(as.Date(df$date, format = "%m/%d/%Y")),]。