使数据具有相同的时间戳结构

时间:2017-12-08 19:20:57

标签: r

我的时间数据采用以下格式:

datatimedf = data.frame(day_time = c('Apr 2005', '1992', "2004", "Jan 2001", "2015"))

我想在只有年份的行中添加Jan。

怎么可能成功呢?

预期输出的一个例子是:

datatimedf = data.frame(day_time = c('Apr 2005', 'Jan 1992', "Jan 2004", "Jan 2001", "Jan 2015"))

我只有一行是这样的:

x[2,1] <- sub("^", "Jan ", x[2,1])

但是如何才能将其传输到整个数据框?

1 个答案:

答案 0 :(得分:1)

以下是使用dplyr

快速完成此操作的方法
library(dplyr)

datatimedf$day_time <- as.character(datatimedf$day_time)
datatimedf <- datatimedf %>% 
    transform(day_time = ifelse(nchar(day_time) == 4, paste("Jan", day_time), day_time))

#> day_time
#> 1 Apr 2005
#> 2 Jan 1992
#> 3 Jan 2004
#> 4 Jan 2001
#> 5 Jan 2015

对于每一行,它检查字符串的长度是否为4,如果是,则将"Jan"添加到开头,否则保留原始字符串。这并不适用于其他情况,但如果您想让它更通用并且能够处理更多类型的输入,它应该让您入门。