2013-03-14 192 views
8

使用R,我想將兩個不同列中包含的月份nb(月份)和日期nb(日期)合併成一列(日期),並使用創建的列日期格式。將月份和日期合併到一個日期列中

我的數據幀是這樣的:

St Dep Month Day 
A 2 1 1 
B 2 1 1 
B 2 2 1 
A 5 1 1 
A 7 1 1 
C 2 1 1 
C 5 1 1 

我想的東西,如「一月-01」添加一列。

回答

9

嘗試......

df <- data.frame(Month = sample(1:12 , 10 , repl = TRUE) , Day = sample(1:30 , 10 , repl = TRUE)) 
df$Date <- as.Date(paste(df$Month , df$Day , sep = ".") , format = "%m.%d") 

df 
#  Month Day  Date 
# 1  1 8 2013-01-08 
# 2  1 17 2013-01-17 
# 3  7 23 2013-07-23 
# 4  11 21 2013-11-21 
# 5  3 30 2013-03-30 
# 6  12 15 2013-12-15 
# 7  2 30  <NA> 
# 8  7 10 2013-07-10 
# 9  1 16 2013-01-16 
# 10  8 1 2013-08-01 

我得到了一些來港,因爲我做了隨機日期,其中一些不存在的,如2月30日

+0

OK,就是它!我不希望有一年(我感興趣的變量是30年的平均值),但我可能會找到一種方法,不要在我的斧頭(我使用ggplot2)中計劃一年。 – user2165907 2013-03-14 13:27:16

+2

我建議你看一下@ndoogan的解決方案,並接受它,而不是*完全*你想要的。 – 2013-03-14 13:33:33

9

我這裏假設通過「日期格式」你只是意味着一個字符串,它看起來像一個日期,而不是一個合適的日期類R.

data <- data.frame(Month=c(1,5,2), Day=c(1,2,3)) 
data$MonthDay <- paste(month.abb[data$Month], data$Day, sep="-") 
data 
# Month Day MonthDay 
# 1  1 1 Jan-1 
# 2  5 2 May-2 
# 3  2 3 Feb-3 
+0

+1更好的解決方案(假設他不想要日期!) – 2013-03-14 13:26:11

+0

@ SimonO101,OP說他想在帖子底部顯示「Jan-01」之類的東西:)。 – Arun 2013-03-14 13:29:39

+0

@Arun我知道,這就是爲什麼我說這是一個更好的解決方案:-)但有時候人們並不總是完全解釋他們想要的東西。 – 2013-03-14 13:32:33

相關問題