4

が偶数である観測のみを保持するために、データ フレームをサブセット化したいと思います。

私のデータの一部(100 行)をここからダウンロードできます。

最初の 6 行は次のようになります。

            Timestamp C01 C02 C03 C04 C05 C06 C07 C08 C09 C10 C11 C12 C13 C14
1 2013-04-01 00:00:00   0   1   1   1   1   0   1   1   1   1   0   1   0   1
2 2013-04-01 00:00:01   0   1   1   1   1   0   1   1   1   1   0   1   0   1
3 2013-04-01 00:00:02   0   1   1   1   1   0   1   1   1   1   0   1   0   1
4 2013-04-01 00:00:03   0   1   1   1   1   0   1   1   1   1   0   1   0   1
5 2013-04-01 00:00:04   0   1   1   1   1   0   1   1   1   1   0   1   0   1
6 2013-04-01 00:00:05   0   1   1   1   1   0   1   1   1   1   0   1   0   1

そして、私はそれを次のようにしたいと思います:

            Timestamp C01 C02 C03 C04 C05 C06 C07 C08 C09 C10 C11 C12 C13 C14
1 2013-04-01 00:00:00   0   1   1   1   1   0   1   1   1   1   0   1   0   1
2 2013-04-01 00:00:02   0   1   1   1   1   0   1   1   1   1   0   1   0   1
3 2013-04-01 00:00:04   0   1   1   1   1   0   1   1   1   1   0   1   0   1
4 2013-04-01 00:00:06   0   1   1   1   1   0   1   1   1   1   0   1   0   1
5 2013-04-01 00:00:08   0   1   1   1   1   0   1   1   1   1   0   1   0   1
6 2013-04-01 00:00:10   0   1   1   1   1   0   1   1   1   1   0   1   0   1

herehereから時間間隔をサブセット化する方法は理解していますが、質問に似た例を見つけることができませんでした。率直に言って、どこから始めればよいかわかりません。

ありがとうございました!

注: Timestamp変数は、既に POSIXct にフォーマットされています。

4

4 に答える 4

5

すべての回答は素晴らしいですが、整数に変換されたときにPOSIXctオブジェクトが実際に秒単位で表されるという事実を認めた人は誰もいなかったので、回答を追加しています(1970年1月1日から)ので、実際には次のように機能しますまあ(ただし、奇数と偶数の分、時間などを選択しようとしている場合はそうではありません...):

a <- seq(as.POSIXct("2013-04-01 00:00:00"),as.POSIXct("2013-04-01 01:00:00"),by="secs")
a[as.integer(a)%%2==0]
于 2013-10-29T20:21:04.457 に答える
4
library(lubridate)

foo <- seq(as.POSIXct("2013-01-10"), as.POSIXct("2013-01-11"), by = "secs")

secs <- second(foo)

even <- foo[secs %% 2 == 0]
odd <- foo[secs %% 2 == 1]

data.frameあなたのダウンロード リンクがうまく機能しなかったので、あなたのデータを使用しませんでしたが、同じ方法でサブセット化できるはずです。

于 2013-10-29T18:36:22.413 に答える