4

「mydata」というラベルの付いたRのデータフレームを使用しています。「ts」とラベル付けされた最初の列には、UNIX タイムスタンプ フィールドが含まれます。これらのフィールドを曜日に変換したいと思います。

strptime および POSIXct 関数を使用してみましたが、それらを適切に実行する方法がわかりません:

> strptime(ts, "%w")

-- 次のエラーが返されました:

「as.character(x) のエラー: タイプ 'closure' をタイプ 'character' のベクトルに強制できません」

また、POSIXctで人間が読める形式に変換しようとしました:

as.Date(as.POSIXct(ts, origin="1970-01-01"))

-- 次のエラーが返されました:

「as.POSIXct.default(ts, origin = "1970-01-01") のエラー: 'ts' をクラス “POSIXct” に変換する方法がわからない」

更新:これが私のために働いたものです:

> mydata$ts <- as.Date(mydata$ts)

それから

> mydata$ts <- strftime( mydata$ts , "%w" )
4

1 に答える 1

9

これを直接渡して を呼び出すstrftimeまでずっと行く必要はありません。POSIXltstrftimeas.POSIXlt

wday <- function(x) as.POSIXlt(x)$wday

wday(Sys.time()) # Today is Sunday
## [1] 0

weekdays数値出力ではなく文字出力が必要な場合は、次の関数もあります。

weekdays(Sys.time())
## [1] "Sunday"
于 2013-06-09T13:49:38.310 に答える