2

降水量の時系列のcsvファイルを読んでいます。問題は時刻が。のときです00:00

head(C1)
            fecha precip
1      09/04/2012      0
2 09/04/2012 0:05      0
3 09/04/2012 0:10      0
4 09/04/2012 0:20      0
5 09/04/2012 0:25      0
6 09/04/2012 0:30      0

動物園のオブジェクトを取得しようとしていますが、時間をPOSIXctまたはPOSIXltに変更すると次のようになります。

C1$fecha <- as.POSIXct(C1$fecha, format="%d/%m/%Y %k:%M")

問題のある日にNAを取得します。

head(C1)
                fecha precip
1                <NA>      0
2 2012-04-09 00:05:00      0
3 2012-04-09 00:10:00      0
4 2012-04-09 00:20:00      0
5 2012-04-09 00:25:00      0
6 2012-04-09 00:30:00      0

これに関するヒントはありますか?ありがとう

4

2 に答える 2

3

1 つの解決策は、短い文字列、つまり時間情報を持たない文字列を見つけることです。次に0:00、datetime オブジェクトに変換する前に、これらの各文字列を連結します。

サンプル データを作成します。

x <- c("09/04/2012", "09/04/2012 0:05", "09/04/2012 0:10", "09/04/2012 0:20", 
       "09/04/2012 0:25", "09/04/2012 0:30")

nchar()長さがわずか 10 文字の要素を識別するために使用します。次にpaste() 0:00、これらの要素に:

index <- sapply(x, nchar) == 10
x[index] <- paste0(x[index], " 0:00")

as.POSIXct(x, format="%d/%m/%Y %k:%M")

[1] "2012-04-09 00:00:00 BST" "2012-04-09 00:05:00 BST" "2012-04-09 00:10:00 BST"
[4] "2012-04-09 00:20:00 BST" "2012-04-09 00:25:00 BST" "2012-04-09 00:30:00 BST"
于 2013-01-08T15:15:47.630 に答える
0

x日付と日付/時刻のベクトルである場合は、これを試してください:

as.POSIXct(paste(x, "00:00"), format = "%m/%d/%Y %k:%M")
于 2013-01-08T23:48:15.293 に答える