2016-11-09 40 views
0

我想將我的數據集中的所有日期2006-04-11更改爲2006-04-01。我將日期變量轉換爲一個因子,記錄2006-04-11至2006-04-01,並將該變量重新轉換回class = date。重新編碼R中的具體日期

重新編碼工作,而變量是一個因素(所有2006-04-11日期更改爲2006-04-01),但在轉換回class = date後,變量再次顯示爲2006-04- 11。

將日期變量轉換爲因子並檢查其工作。

data$review_date<-as.factor(data$review_date) 
class(data$review_date) 

重新編碼因子變量到我想要的日期(2006-04-01)和查看數據。

recode_factor(data$review_date, '2006-04-11' = "2006-04-01") 
data$review_date 

將變量從因子轉換回日期,檢查類和查看數據。

data$review_date <- as_date(data$review_date,"%y/%m/%d") 
class(review_date) 
str(data) 
data$review_date 

或者,我會願意完全放棄所有日期的日部分,但我還沒有想出如何做到這一點。

+0

至於約共下探天的最後一行 - 見'從存儲年/月日'zoo'包yearmon'對象。 – thelatemail

回答

2

recode_factor()不更新data中的值。您必須重新分配結果,例如:

data$review_date <- recode_factor(data$review_date, '2006-04-11' = "2006-04-01") 

...因此它可以覆蓋原始值。

整個過程也只是一個簡單的替換操作。例如:

data <- data.frame(review_date = as.Date(c("2006-04-11","2001-01-01"))) 
data$review_date[data$review_date == "2006-04-11"] <- "2006-04-01" 

(是的,這將給予適當的Date類變量)

+0

添加數據$ review < - 解決了我的問題,謝謝! – nusbaume