-2

2 番目の列がevent.dateという名前の文字列であるデータ フレーム (d) があります。この列のサンプル値は "2012-07-23 00:00:00" (日時データ) です。2 番目の列を日時に変換したいと考えています。私は2つのことを試しました:

1) d[,2] <- strptime(d[,2], "%Y-%m-%d %H:%M:%S")
結果: 警告メッセージ: In [<-.data.frame( *tmp*, , 2, value = list (sec = c(0, 0, 0, : 1 つの変数を置き換えるために 9 つの変数が提供されまし た。head
(d)は、値が 0 の event.date を示します (良くない)

2) d$event.date <- strptime(d$event.date, "%Y-%m-%d %H:%M:%S")
Works OK ... datetime を変換できるようにする必要があります位置列表記 を使用した列。

私が間違っていることについて何か考えはありますか?ありがとう

str(d)は次のようになります:
'data.frame': 826 obs. $ event.id
: int 229162 129163 392564 392665 398466 355167 326168 397269 399170 399171 ...
$ event.date : chr "2012-07-23 00:00:00" "2012-07-23 00 :00" "2012-07-23 00:00:00" "2012-07-23 00:00:00" ...
$ severity : 6 レベルの係数 "Clear","Critical",..: 3 3 3 3 3 3 3 3 3 3 ...
$ message.type : Factor w/ 37 levels "AC Power Lost",..: 4 4 4 4 4 4 4 4 4 15 ...
$ message : chr "Theユーザーは 10.211.221.118 から XX0852-036128 にログインしました。」"ユーザーは
$entity.name に正常にログインしました: chr "XX0852-036633" "XX0902-037744""

4

1 に答える 1

0
> d <- data.frame(foo = rbinom(2, 10, .3), event.date = c("1990-01-10 04:30:13", "1987-03-08 02:12:14"), tt = rpois(2, 42), stringsAsFactors = FALSE)
> d
  foo          event.date tt
1   4 1990-01-10 04:30:13 37
2   3 1987-03-08 02:12:14 41
> d[[2]] <- strptime(d[[2]], "%Y-%m-%d %H:%M:%S")
> d
  foo          event.date tt
1   4 1990-01-10 04:30:13 37
2   3 1987-03-08 02:12:14 41
> sapply(d, class)
$foo
[1] "integer"

$event.date
[1] "POSIXlt" "POSIXt" 

$tt
[1] "integer"

この例ではd[,2]d[2]との違いが何なのかよくわかりません。d[[2]]私は経験から、これがここでうまくいくことを知っています。[.data.frame[[.data.frame[<-.data.frameおよびのソース コードをいじることができます[[<-.data.frame

于 2013-11-04T22:02:23.553 に答える