0

ログデータがあり、開始日時と終了日時のスタンプが記録されています。

ログ ファイルのデータは次のように なります Excel で事前に作成されたデータ

Start_Date1 Start_Time1 Start_Millisecond1  Start_Date2 Start_Time2 Start_Millisecond2
29-11-2015  18:25:04    671 29-11-2015  18:40:05    275
29-11-2015  18:25:03    836 29-11-2015  18:40:04    333
10-11-2015  02:41:57    286 10-11-2015  02:51:52    690

Rstudioを使用してRにデータをロードすると。データのクラスは次のようになります。

読み込まれたデータとそのデータ型

以下のコード行を使用して、日付を POSIXlt に変換しています。

nov$Start.Date1<-as.POSIXlt(as.character(nov$Start.Date1), format="%d-%m-%Y")

nov <-read.csv(file = '././data/Data For R Nov CBEFF log.csv',header = TRUE,na.strings = FALSE,stringsAsFactors = FALSE)

str(nov$Start.Time1)

nov$Start.Date1<-as.POSIXlt(as.character(nov$Start.Date1), format="%d-%m-%Y")

nov$Start.Time1<-as.POSIXlt(as.character(nov$Start.Time1), format="%H:%M:%S") nov$Start.Time1<-format(nov$Start.Time1, format="%H:%M:%S")

nov$Start.Date2<-as.POSIXlt(as.character(nov$Start.Date2), format="%d-%m-%Y")

nov$Start.Time2<-as.POSIXlt(as.character(nov$Start.Time2), format="%H:%M:%S") nov$Start.Time2<-format(nov$Start.Time2, format="%H:%M:%S")

**

> 完了するまでにかかった時間を計算したい > StartTime2-StartTime1

**

StartTime1 と StartTime2 は chr データ型になりました。

4

1 に答える 1

1

これでうまくいくはずです。データ(再現可能な例)を投稿していただければ、コードを確認できました。このように、いくつかのタイプミスがあるかもしれません。

nov<-read.delim("sample.csv", sep=";", dec=".")
nov$start1<-as.POSIXlt(paste(nov$Start_Date1,nov$Start_Time1 ,sep=" "), format="%d-%m-%Y %H:%M:%S")
nov$start2<-as.POSIXlt(paste(nov$Start_Date2,nov$Start_Time2 ,sep=" "), format="%d-%m-%Y %H:%M:%S")
nov$timediff<-as.numeric(difftime(nov$start2,nov$start1, unit="secs"))*1000+(nov$Start.Milisecond2-nov$Start.Milisecond1)

これにより、ミリ秒単位の時間が得られます

EDIT サンプルデータで検証。変数名が「Start.Date1」から「Start_Date1」に変更されました

于 2016-02-25T10:48:02.380 に答える