こんにちは私は各日付の日だけにとどまる必要があります:
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")
しかし、私は完全な日付を取得し、元の日付とは異なります。
これを行うために別のパッケージをインストールしたくありません。どうすれば解決できますか?ありがとう
format
をお探しですか?
format(as.Date(df$x,format="%Y-%m-%d"), format = "%d")
# [1] "24" "24" "11" "11" "16" "14"
日付が常に同じ位置と形式である場合は、substr()
を使用した別のオプションがあります。以下の呼び出しは、9番目の位置(1日の始まり)で始まり、10番目(その日の2番目の番号)で終わります。
substr(x = df$x, start = 9, stop = 10)
[1] "24" "24" "11" "11" "16" "14"
結果はとにかく日付ではなくなるので、gsub
を使用できます
gsub("(.*)[-]", "", df$x)
# [1] "24" "24" "11" "11" "16" "14"
試してください:
sapply(strsplit(as.character(df$x), '-'), function(x) x[3])
[1] "24" "24" "11" "11" "16" "14"
単にweekdays(df $ date)を使用して、日付から曜日を抽出できます。列のタイプがDateであることを確認するか、as.Date()を使用して変換してください。お役に立てれば :)
変数のクラスをすでに日付型に設定している場合は、試してください
df$dia <- format(df$x, "%d")
それ以外の場合は、フォーマット関数をas.date関数内にネストします