実際に値が"1/1/2017 1:05:00 AM"
の場合は日付ではなく、日付時刻なので、日付と時刻の両方の書式文字を指定する必要があります。
だから、最初の日付時刻のすべての部分を指定することにより、Rのような理解形態(例えばPOSIXct)にあなたの日付時刻を取得する必要があります:あなたが精通していない場合
test <- as.POSIXct("1/1/2017 1:05:00 AM", format = '%m/%d/%Y %I:%M:%S %p')
test
> test
[1] "2017-01-01 01:05:00 CST"
が?strftime
を参照してください。上で使用されているすべての書式設定プレースホルダを使用し、使用する条件は%I
と%p
です。
次に、あなたが望むの日付形式にPOSIXctベクトルを変換することができ
format(test, format = '%Y-%m-%d')
> format(test, format = '%Y-%m-%d')
[1] "2017-01-01"
あなたのための合併症は、あなたが戻ってそれらを変換する必要があるので、Rは、要因にあなたの文字の日付時刻を変換していることです日付時刻に変換する前に文字のベクトルを返します。例えば、あなたがas.Date(orders2017$newdate,format="%Y-%m-%d")
と本当に近かった
orders2017 <- transform(orders2017,
orderdate = as.POSIXct(as.character(orderdate),
format = '%m/%d/%Y %I:%M:%S %p'))
orders2017 <- transform(orders2017,
newdate = format(orderdate, format = '%Y-%m-%d'))
Huh!私は 'as.Date()'が余分なビットをすべて無視することは知らなかった。 –
「?strptime」から*「各入力文字列は、指定された書式に対して必要な限り処理されます。末尾の文字は無視されます」* – Gregor
@Gregor Thankyyou so much..It私はまた何を書くべきですか? – jsingh