在大型向量

时间:2015-12-07 12:32:09

标签: r date

我有一个包含n个元素的向量。

从具有一个对象的向量中获取年份和月份很容易

a <- as.Date("01.01.2001", "%d.%m.%Y")
b <- format(a, "%Y%m")

但是,如果我在向量中有1k个不同的日期,怎么做呢?

当我用一个带有n个元素的向量替换一个元素时,我得到了

  

format.default中的错误(结构(as.character(x),names = names(x),dim = dim(x),:     无效的'trim'参数

我的矢量输入我尝试转换

"02.01.2011 00:00", "02.04.2000 00:00",...

1 个答案:

答案 0 :(得分:0)

尝试

your.character.vector <- c("02.01.2011 00:00", "02.04.2000 00:00")

a <- as.POSIXct(your.character.vector, format = "%d.%m.%Y")
# or, if time is not always 00:00
a <- as.POSIXct(your.character.vector, format = "%d.%m.%Y %H:%M")

c <- as.POSIXlt(a)$mday
d <- as.POSIXlt(a)$mon + 1  # + 1 because mon = 0-11
b <- paste0(c,d)

> b
[1] "21" "24"

# or to add leading zeros where they are missing
b <- paste0(sprintf("%02d",c), sprintf("%02d",d))

> b
[1] "0201" "0204"