我有這樣的資料框:
[701] "38760" "38788" "38819" "38849" "38880" "38910" "38941"
[708] "38972" "39002" "39033" "39063" "12/13/2006" "12/14/2006" "12/15/2006"
[715] "12/16/2006" "12/17/2006" "12/18/2006" "12/19/2006" "12/20/2006" "12/21/2006" "12/22/2006"
[722] "12/23/2006" "12/24/2006" "12/25/2006" "12/26/2006" "12/27/2006" "12/28/2006" "12/29/2006"
[729] "12/30/2006" "12/31/2006"
我只想有日期(替換或洗掉數字)。任何人都知道一些合理的快速方法來做到這一點?
uj5u.com熱心網友回復:
假設我們有一個“日期”列,data.frame其中僅包含兩種格式 - 1)%m/%d/%Y和 2) 數值 - 然后我們在整個“日期”上應用as.Date該格式%m/%d/%Y。如果值是數字,它將回傳NA,我們單獨執行并更新base R
dates1 <- with(df1, as.Date(dates, format = "%m/%d/%Y"))
dates1[is.na(dates1)] <- with(df1, as.Date(as.integer(dates[is.na(dates1)]),
origin = "1899-12-30"))
df1$dates <- dates1
-輸出
> df1$dates
[1] "2006-02-12" "2006-03-12" "2006-04-12" "2006-05-12" "2006-06-12" "2006-07-12" "2006-08-12" "2006-09-12" "2006-10-12" "2006-11-12" "2006-12-12" "2006-12-13"
[13] "2006-12-14" "2006-12-15" "2006-12-16" "2006-12-17" "2006-12-18" "2006-12-19" "2006-12-20" "2006-12-21" "2006-12-22" "2006-12-23" "2006-12-24" "2006-12-25"
[25] "2006-12-26" "2006-12-27" "2006-12-28" "2006-12-29" "2006-12-30" "2006-12-31"
資料
df1 <- structure(list(dates = c("38760", "38788", "38819", "38849",
"38880", "38910", "38941", "38972", "39002", "39033", "39063",
"12/13/2006", "12/14/2006", "12/15/2006", "12/16/2006", "12/17/2006",
"12/18/2006", "12/19/2006", "12/20/2006", "12/21/2006", "12/22/2006",
"12/23/2006", "12/24/2006", "12/25/2006", "12/26/2006", "12/27/2006",
"12/28/2006", "12/29/2006", "12/30/2006", "12/31/2006")),
class = "data.frame", row.names = c(NA,
-30L))
uj5u.com熱心網友回復:
我假設這是一個Excel約會。所以現在你可以使用which 1899 年 12 月 30 日的origin論點as.Date。
library(dplyr)
df %>%
mutate(date = as.Date(date, origin = "1899-12-30"))
date Przedmiescie Centrum
1 2005-01-01 0 0
2 2005-02-01 0 0
3 2005-03-01 0 0
4 2005-04-01 0 0
5 2005-05-01 0 2
6 2005-06-01 0 0
資料:
structure(list(date = c(38353L, 38384L, 38412L, 38443L, 38473L,
38504L), Przedmiescie = c(0L, 0L, 0L, 0L, 0L, 0L), Centrum = c(0L,
0L, 0L, 0L, 2L, 0L)), class = "data.frame", row.names = c("1",
"2", "3", "4", "5", "6"))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/375178.html
標籤:r
