2016-10-14 4 views
1

タイトルは自明です。私はdfを持っていて、最初の列は"14-OCT-2016"です。事前に動物園で「14-OCT-2016」または「%dd-%mon-%YYYY」を読むには? r/zoo/xts

Error in as.POSIXlt.character(as.character(x), ...) : 
    character string is not in a standard unambiguous format 

感謝:私が得る最後の1のために

df$NAV.Date <- as.Date(df$NAV.Date, "%Y %b %d") # this replaces all values with NA 

df$NAV.Date <- strftime(test$NAV.Date, format="%Y %b %d") 

:私は私が見

.xtsとしてこの dfを読む必要があります。

答えて

0

これはsysロケールの問題です(ほとんどの場合)。ここではそれを解決する方法です:

test<-"14-OCT-2016" 
lct<-Sys.getlocale("LC_TIME") 
Sys.setlocale("LC_TIME","C") #moves you to the right locale 
date<-as.Date(test, "%d-%b-%Y") 
print(date) 
Sys.setlocale("LC_TIME",lct) #moves you back again 

希望に役立ちますその:D

を第二の問題について、あなたの代わりに

library(lubridate) 
parse_date_time("12-OCT-2015", tz="UTC", c("dbY", "dby"), locale = "C") 
parse_date_time("12-OCT-15", tz="UTC", c("dbY", "dby"), locale = "C") 
+0

ありがとうございます。私の問題は部分的に解決されています。私は今、悪いエントリがあるようです。私は、 "16-FEB-2015"の代わりに "16-Feb-15"と入力されたデータセットがもっと多い(私は5mの行がある)と仮定できます。その特定の行については、あなたのコードを使用するときに "0015-02-16"を取得します。これを考慮して調整することは可能でしょうか? –

+0

@AlexBădoi更新された回答を参照してください。それは両方を扱うことができます。これに応じて、タイムゾーン引数 'tz'を調整する必要があります。私が "UTC"に設定した例では、 – user3293236

0

1行のソリューションは、以下のいずれかlubridateを使用する必要がありますパッケージの助けを借りて、anytime

test <- "14-OCT-2016" 
date <- anytime::anydate(test) 
#[1] "2016-10-14" 

第2の問題lubridate

test2 <- "16-Feb-15" 
date2 <- lubridate::dmy(test2) 
#[1] "2015-02-16" 
+0

すべてがうまくいきます。しかし、 "16-FEB-2015"の代わりに "16-Feb-15"と入力したデータセットの1つにバンドエントリがあるようですが、これはいつでもカバーすることができますか?現時点ではこのセルは空白のままです –

+0

上記の編集を参照してください –

関連する問題