web-dev-qa-db-ja.com

R日時から日を抽出

こんにちは私は各日付の日だけにとどまる必要があります:

df<-data.frame(x=c("2014-07-24 00:00:00", 
"2014-07-24 00:00:00", "2014-07-11", "2014-07-11" ,"2014-07-16" ,"2014-07-14"))
as.Date(df$x,format="%Y-%m-%d" )

私はこれを試しました:

df$dia<-as.Date(df$x, format="%d")

しかし、私は完全な日付を取得し、元の日付とは異なります。

これを行うために別のパッケージをインストールしたくありません。どうすれば解決できますか?ありがとう

5
GabyLP

formatをお探しですか?

format(as.Date(df$x,format="%Y-%m-%d"), format = "%d")
# [1] "24" "24" "11" "11" "16" "14"
19
Sven Hohenstein

日付が常に同じ位置と形式である場合は、substr()を使用した別のオプションがあります。以下の呼び出しは、9番目の位置(1日の始まり)で始まり、10番目(その日の2番目の番号)で終わります。

substr(x = df$x, start = 9, stop = 10)
[1] "24" "24" "11" "11" "16" "14"
3
lawyeR

結果はとにかく日付ではなくなるので、gsubを使用できます

gsub("(.*)[-]", "", df$x)
# [1] "24" "24" "11" "11" "16" "14"
2
Rich Scriven

試してください:

sapply(strsplit(as.character(df$x), '-'), function(x) x[3])
[1] "24" "24" "11" "11" "16" "14"
1
rnso

単にweekdays(df $ date)を使用して、日付から曜日を抽出できます。列のタイプがDateであることを確認するか、as.Date()を使用して変換してください。お役に立てれば :)

0
Nupur Gulalkari

変数のクラスをすでに日付型に設定している場合は、試してください

df$dia <- format(df$x, "%d")

それ以外の場合は、フォーマット関数をas.date関数内にネストします

0
Abhik Mitra