以下代码:
date.seq <- as.Date("2007-10-01"):as.Date("2007-10-31")
new.dates <- data.frame(date = as.Date(date.seq, origin = "1970-01-01"))
给出以下输出:
> new.dates
date
1 2007-10-01
2 2007-10-02
3 2007-10-03
4 2007-10-04
5 2007-10-05
我希望日期格式为dd-mm-yyyy。
我试过as.Date(new.dates, "%d/%m/%y")
但没有成功。
答案 0 :(得分:5)
a)解析
d <- as.Date( "06.12.2012", "%d.%m.%Y")
b)格式
strftime(d, "%m-%d-%Y")
或
format(d, "%m-%d-%Y")
所以找到下面的代码。
date.seq <- as.Date("2007-10-01"):as.Date("2007-10-31")
new.dates <- data.frame(date = as.Date(date.seq, origin = "1970-01-01"))
new.dates1 <- as.Date( new.dates$date, "%d.%m.%Y")
strftime(new.dates1, "%m-%d-%Y")
答案 1 :(得分:2)
这是另一种方法。只是为了好玩:
sub("^(.*)-(.*-)(.*)$", "\\3-\\2\\1", new.dates[[1]])
# [1] "01-10-2007" "02-10-2007" "03-10-2007" "04-10-2007" "05-10-2007"
# [6] "06-10-2007" "07-10-2007" "08-10-2007" "09-10-2007" "10-10-2007"
# [11] "11-10-2007" "12-10-2007" "13-10-2007" "14-10-2007" "15-10-2007"
# [16] "16-10-2007" "17-10-2007" "18-10-2007" "19-10-2007" "20-10-2007"
# [21] "21-10-2007" "22-10-2007" "23-10-2007" "24-10-2007" "25-10-2007"
# [26] "26-10-2007" "27-10-2007" "28-10-2007" "29-10-2007" "30-10-2007"
# [31] "31-10-2007"
答案 2 :(得分:1)
这也有效:
new.dates <- data.frame(format(as.Date(1:31, origin = "1970-01-01"),"%d/%m/%Y"))
在原始代码中,as.Date(start):as.Date(end)
会创建一个整数向量,您可以再次使用as.Date(...)
将其转换回日期。