我的时间数据采用以下格式:
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])
但是如何才能将其传输到整个数据框?
答案 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"
添加到开头,否则保留原始字符串。这并不适用于其他情况,但如果您想让它更通用并且能够处理更多类型的输入,它应该让您入门。