我有以下数据:关闭dn mavg up pctB sig
2014-11-21 13:40:00 120462.8 120244.0 120427.2 120610.4 0.5973438 1 2014-11-21 13:45:00 120461.1 120282.7 120414.9 120547.0 0.6747622 0 2014-11-21 13:50:00 120635.2 120267.1 120418.6 120570.2 1.2145544 0 2014- 11-21 13:55:00 120545.0 120266.0 120419.2 120572.4 0.9105750 -1 2014-11-21 14:00:00 120495.9 120265.5 120422.2 120578.9 0.7351776 -1 2014-11-21 14:05:00 120507.5 120267.1 120427.6 120588.2 0.7487046 -1
我试图每天将时间为14:00时将sig列重置为0(上面示例中的结果将是,第5行中sig的值将为0而不是-1)。我四处查看,但找不到仅基于第一列的一部分(即“数据时间”,而我的条件仅是时间)的条件。
任何建议都会有所帮助。
谢谢!
我试图解释你的问题。您的数据如下所示:
close dn mavg up pctb sig
1 11/21/2014 13:40:00 120462.8 120244.0 120427.2 120610.4 0.5973438 1
2 11/21/2014 13:45:00 120461.1 120282.7 120414.9 120547.0 0.6747622 0
3 11/21/2014 13:50:00 120635.2 120267.1 120418.6 120570.2 1.2145544 0
4 11/21/2014 13:55:00 120545.0 120266.0 120419.2 120572.4 0.9105750 -1
5 11/21/2014 14:00:00 120495.9 120265.5 120422.2 120578.9 0.7351776 -1
6 11/21/2014 14:05:00 120507.5 120267.1 120427.6 120588.2 0.7487046 -1
试试这个:
dateTimes <- as.character(index(spread_BB))
time <- ldply(strsplit(dateTimes, ' '))[, 2]
df <- data.frame(time = time, sig = spread_BB$sig)
sig <- with(df, ifelse(time == '14:00:00', 0, sig))
spread_BB$sig <- NULL
spread_BB$sig <- sig
#> spread_BB
# close dn mavg up pctb sig
# 1 11/21/2014 13:40:00 120462.8 120244.0 120427.2 120610.4 0.5973438 1
# 2 11/21/2014 13:45:00 120461.1 120282.7 120414.9 120547.0 0.6747622 0
# 3 11/21/2014 13:50:00 120635.2 120267.1 120418.6 120570.2 1.2145544 0
# 4 11/21/2014 13:55:00 120545.0 120266.0 120419.2 120572.4 0.9105750 -1
# 5 11/21/2014 14:00:00 120495.9 120265.5 120422.2 120578.9 0.7351776 0
# 6 11/21/2014 14:05:00 120507.5 120267.1 120427.6 120588.2 0.7487046 -1
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句