我想找到最高的'高'我可以指定的两个日期范围之间的列。例如,2017-09-01
和2017-09-04
之间的最大值为1.29444
。
这是我的数据
Open High Low Close
2017-09-01 1.29360 1.29951 1.29052 1.29495
2017-09-03 1.29600 1.29660 1.29444 1.29535
2017-09-04 1.29536 1.29643 1.29124 1.29300
2017-09-05 1.29306 1.30440 1.29088 1.30331
2017-09-06 1.30331 1.30820 1.30181 1.30471
2017-09-07 1.30472 1.31381 1.30325 1.31319
2017-09-08 1.31319 1.32239 1.31233 1.31945
2017-09-10 1.31816 1.31978 1.31736 1.31769
2017-09-11 1.31769 1.32223 1.31593 1.31764
2017-09-12 1.31766 1.33145 1.31703 1.33097
2017-09-13 1.33096 1.33286 1.31836 1.32040
2017-09-14 1.32039 1.34055 1.31501 1.33955
2017-09-15 1.33955 1.36159 1.33922 1.35871
2017-09-17 1.35579 1.36029 1.35579 1.35921
2017-09-18 1.35921 1.36181 1.34646 1.35176
2017-09-19 1.35176 1.35515 1.34683 1.35178
2017-09-20 1.35178 1.36573 1.34517 1.34914
2017-09-21 1.34914 1.35861 1.34706 1.35761
2017-09-22 1.35760 1.35955 1.34496 1.34935
2017-09-24 1.34872 1.35339 1.34832 1.35261
2017-09-25 1.35262 1.35706 1.34308 1.34816
2017-09-26 1.34816 1.35139 1.34094 1.34385
2017-09-27 1.34386 1.34389 1.33634 1.33753
2017-09-28 1.33754 1.34551 1.33427 1.34159
2017-09-29 1.34160 1.34258 1.33497 1.33963
答案 0 :(得分:3)
您可以使用" YYYY-MM-DD / YYYY-MM-DD"中的字符串日期在xts内轻松地对数据进行子集化格式。因此,高列的最大值将是:
max(df.xts$High["2017-09-01/2017-09-04"])
如果您的数据位于名为df.xts
的数据框中。如果数据集中有NA值,您还可以将na.rm=T
参数添加到max函数中,这将排除那些计算最大值而不是返回NA的值。
答案 1 :(得分:0)
您的日期列是否存储为行号? 也许想以我们拥有Date列的方式加载数据。然后这将有效。
#Ensure Date Column is in Date format:
library(lubridate)
df$Date <- ymd(df$date)
# Subset by date
new.df <- subset(df, Date >= as.POSIXct("2017-09-01") & Date <= as.POSIXct("2017-09-04"))
# Find max
max(new.df$High)