に「Date」という文字列がありますが、適切なmmddyyyy形式では書かれていません。mmddyyyy書式で書かれていない日付列をR
Example:
ID Date
125 9282007
350 10152007
225 1112007
240 1052007
Rを使用して「日付」列を適切なmmddyyyy形式にフォーマットするにはどうすればよいですか?
ありがとうございます。
に「Date」という文字列がありますが、適切なmmddyyyy形式では書かれていません。mmddyyyy書式で書かれていない日付列をR
Example:
ID Date
125 9282007
350 10152007
225 1112007
240 1052007
Rを使用して「日付」列を適切なmmddyyyy形式にフォーマットするにはどうすればよいですか?
ありがとうございます。
あなたがdplyr
+ lubridate
で次の操作を行うことができます。
library(dplyr)
library(lubridate)
df %>%
mutate(Date = gsub("(\\d{2})(\\d{4}$)", "-\\1-\\2", Date),
Date = format(mdy(Date), "%m-%d-%Y"))
結果:
ID Date
1 125 09-28-2007
2 350 10-15-2007
3 225 01-11-2007
データ:
df = read.table(text = "ID Date
125 9282007
350 10152007
225 1112007", header = TRUE)
注:1112007は、2007年11月1日または2007年1月11日を意味するかもしれませんので、
元Date
年代のフォーマットはあいまいです。私の解答では、日数は常に2桁であると仮定したので、11-1-2007は11-01-2007としてコード化されています。しかし、それが変換する前のケースかどうかを調べるべきです。
ありがとう。私は別のデータ要素(上記の表の最後のデータ行を参照してください)を見つけましたが、10ではなく01であると考えなければなりません。上記のスクリプトはテーブルの最後の行を01に変換します。 – user8848543
@ user8848543月が2桁であることを明示的に指定しない限り、1052007が10-05-2007か01-05-2007を表すかどうかを知る方法はありません。しかし、あなたは9282007を持っているので、そうではないようです。これらを考慮に入れてルールを設定する方法を決める必要があります。 – useR
'ライブラリ(lubridate); mdy(dat $ Date) 'となります。もちろん、私はあなたのデータフレームを 'dat'と読みました。 'mmddyyyy'フォーマットに'?format.Date'を書いてみてください。 –
これまでに何をしていますか? –