R - 使用特定条件将列值替换为同一列的数值

时间:2017-05-17 07:41:07

标签: r

我想在R studio中完成一项特殊任务。我有一个数据框,有317个观察结果,其中一列是“日期”。 Date列如下所示:

 S.No.      Date 
  1      01-05-17
  2         a 
  3         a 
  4         a 
  5      02-05-17 
  6         a 
  7         a 
  8      04-05-17 
  9         a 

现在我想要的是用前面提到的日期替换所有字符“a”。因此,Date[2:4]应替换为Date[1]Date[6:7]应替换为Date[5],依此类推。

我正在尝试使用grepgsub来查找和替换模式,但直到现在都没有运气。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我能想到的最简单的解决方案是将Date列中的a条目转换为NA,然后使用na.locf包中的zoo(最后一次观察结果)函数。

df$Date <- zoo::na.locf(replace(df$Date, df$Date == "a", NA))

请注意,之后您需要使用Date转换为实际as.Date格式,除非您想将其保留为characterfactor变量。