2013-09-26 36 views
0

繼以上問題之後,我想手動更改日期格式錯誤的格式。使用示例數據框:參照行手動編輯數據幀列中的單元格

ID <- c(101,102,103,104,105,106,107) 
dob <- c("20/04/2001","29/10/2000","September 1 2012","15/11/00","20.01.1999","April 20th 1999", "04/08/01") 
df <- data.frame(ID, dob) 

已經確定了日期的格式不正確(通過突出來港當有錯誤的日期),然後我想手動編輯DOB列

我該怎麼做: a。確保結果日期由R. b確認。通過引用ID列而不是單元格的相對位置(例如不是列,行號)。

例如: ID 103變得01/09/2012 ID 105變得20/01/1999 ID 106變得01/04/1999

提前非常感謝。

回答

0

首先,如果你的變量是一個factor(因爲它是在你的例子),你必須把它轉換爲character第一:

df$dob <- as.character(df$dob) 

然後,你不應該修改數據按行號,但通過選擇要更改的值。事情是這樣的:

df$dob[df$dob=="September 1 2012"] <- "01/09/2012" 
df$dob[df$dob=="April 20th 1999"] <- "20/04/1999" 

一個可選的語法是使用within

df <- within(df, { 
    dob <- as.character(dob) 
    dob[dob=="September 1 2012"] <- "01/09/2012" 
    dob[dob=="April 20th 1999"] <- "20/04/1999" 
})  

一旦你的日期都在完全相同的格式,你必須將它們轉換爲日期類別之一從基地R或從一個包裝。例如,請看strptime幫助頁面。

相關問題