2015-04-19 26 views
1

我想更改我的數據框(「數據」)中的列(「Date」)的時間格式。它從csv導入爲1990年的-Q1,我想將其作爲-1990Q1-,但我的功能並不完美。 我想:R提取併合並單元格中的字符

for (i in 1:length(data$Date)){ 
    data$Date[i] <- paste(substr(data$Date[i], 4,8),substr(data$Date[i], 1,2), 
    sep="") 
    } 

結果是,其中每行有一個NA一列,我不知道爲什麼。有人可以幫忙嗎? 我發現已經是線程Extracting the last n characters from a string in R。在這種威脅中,他們只提到了這個問題,但並沒有以一種可以理解的方式爲我解決這個問題。

在此先感謝

+0

你可能選中此:但萬一有什麼類(數據$日期)? – mcheema

+0

在細胞中是因素。 –

+0

然後只需使用數據$ Date < - as.character(data $ Date)更改爲字符串。如果需要,您可以更換。我認爲你需要調整你的子串調用,但我確信你可以做到這一點,一旦你得到了視覺反饋的粘貼命令的結果。 – mcheema

回答

1

你可以嘗試以下方法:

data$Date <- sub('-(\\w+) *(\\d{4})-', '-\\2\\1-', data$Date)