为R中的特定文本指定日期

时间:2017-11-15 16:57:56

标签: r date dataframe forex

我在R中有一个数据框,如下所示,名为Ident

        Date coredata.Ident.
1  2017-09-01            <NA>
2  2017-09-03            <NA>
3  2017-09-04            <NA>
4  2017-09-05               0
5  2017-09-06               0
6  2017-09-07               0
7  2017-09-08               0
8  2017-09-10               0
9  2017-09-11            Doji
10 2017-09-12            <NA>
11 2017-09-13               0
12 2017-09-14  Bull.Engulfing
13 2017-09-15               0
14 2017-09-17               0
15 2017-09-18  Bear.Engulfing
16 2017-09-19            Doji
17 2017-09-20  Bear.Engulfing
18 2017-09-21  Bull.Engulfing
19 2017-09-22               0
20 2017-09-24               0
21 2017-09-25  Bear.Engulfing
22 2017-09-26               0
23 2017-09-27               0
24 2017-09-28               0
25 2017-09-29               0

我想指定下一个日期,之后有Bull.Engulfing个名为DateSelect1的变量,然后第二个Bull.Engulfing会被分配给DateSelect2等。这样所有Bull.Engulfing都会分配一个日期。

因此,在此示例中,由于Bull.Engulfing行12上有2017-09-14DateSelect1应为2017-09-15,因为它是下一行。希望这是有道理的。

TIA

1 个答案:

答案 0 :(得分:0)

假设Note子集中的输入是数据帧,并将该子集中的每个日期分配给变量:

dates <- as.Date(subset(DF, coredata.Ident. == "Bull.Engulfing")$Date)
for(i in seq_along(dates)) assign(paste0("DateSelect", i), dates[i])

DateSelect1
## [1] "2017-09-14"
DateSelect2
## [1] "2017-09-21"

注意:可重复形式的输入是:

Lines <- "
        Date coredata.Ident.
1  2017-09-01            <NA>
2  2017-09-03            <NA>
3  2017-09-04            <NA>
4  2017-09-05               0
5  2017-09-06               0
6  2017-09-07               0
7  2017-09-08               0
8  2017-09-10               0
9  2017-09-11            Doji
10 2017-09-12            <NA>
11 2017-09-13               0
12 2017-09-14  Bull.Engulfing
13 2017-09-15               0
14 2017-09-17               0
15 2017-09-18  Bear.Engulfing
16 2017-09-19            Doji
17 2017-09-20  Bear.Engulfing
18 2017-09-21  Bull.Engulfing
19 2017-09-22               0
20 2017-09-24               0
21 2017-09-25  Bear.Engulfing
22 2017-09-26               0
23 2017-09-27               0
24 2017-09-28               0
25 2017-09-29               0"
DF <- read.table(text = Lines)