1

私は gnuplot にまったく慣れていませんが、学ぶ必要があるため、これを試しているだけです。3 つの列に値があり、最初の列はファイル名 (日付と時刻、1 時間間隔) を表し、残りの 2 つの列は 2 つの異なるエンティティ Prop1 と Prop2 を表します。

Datetime             Prop1        Prop2

20110101_0000.txt     2            5
20110101_0100.txt     2            5
20110101_0200.txt     2            5
...
20110101_2300.txt     2            5
20110201_0000.txt     2            5
20110101_0100.txt     2            5
...
20110201_2300.txt     2            5
...

最後の 4 桁の数字である時刻 (**_0100) でデータを集計する必要があります。そこで、1 日の時間を示す hour という別の列を作成したいと思います。0000 = 0h, 0100 = 1h, ...... 2200 = 22hなどを意味します。

次に、各時間の Prop1 と Prop2 の合計を取得したいので、最終的には次のようになります。

Hour  Prop1   Prop2
0h     120     104
1h     230     160
...
10h    90      110
...
23h    100    200 

Prop1 と Prop2 のライン プロットを取得します。

4

1 に答える 1

5

gsub を使用した一般的な解決策:

Data$Hour <- gsub(".+_(\\d+).txt","\\1",Data$Datetime)

編集 :

を使用Data$Hour <- substr(Data$Hour,1,2)して、時間だけを取得できます。コメントで述べたように、Datetime で常にまったく同じ構造を使用している場合は、substr()すぐに使用できます。

Data$Hour <- substr(Data$Datetime,10,11)

次に、、、、...を使用してaggregate、必要なことを行うことができます。Prop1 と Prop2 の両方を合計するには、次のように集計を使用できます。tapplyby

aggregate(Data[2:3],list(Data$Hour),sum)

データセットで:

zz<-textConnection("Datetime             Prop1        Prop2
20110101_0000.txt     2            5
20110101_0100.txt     2            5
20110101_0200.txt     2            5
20110101_2300.txt     2            5
20110201_0000.txt     2            5
20110201_0100.txt     2            5
20110201_0200.txt     2            5
20110201_2300.txt     2            5")
Data <- read.table(zz,header=T,as.is=T)
于 2011-02-17T10:19:59.653 に答える