2012-01-24 2 views
0

私はちょうどRで始まり、助けを求めています。次のように私は、ファイル内のデータのセットを持っている:数ヶ月のデータを含むデータフレームから曜日に基づいてデータフレームを作成する

20111001|37|9|9 
20111002|48|6|11 
... 
20111031|42|6|8 


私は、次を使用してファイルにロードされています:

myClasses <- c("character", "numeric", "numeric", "numeric") 
    df <- read.table("inputfile", FALSE, "|", colClasses=myClasses) 
    names(df) <- c("datestamp", "cnt1", "cnt2", "cnt3") 
    df$datestamp <- as.Date(df$datestamp, "%Y%m%d") 


どのように私は唯一含む別のデータフレームを作成することができます特定の平日のデータ(すなわち、dfと同じ情報をすべて含むデータフレームですが、Fridaysのみ)

答えて

1

あなたは(一日だけのために)一度それをやっている場合は、金曜日に任意の日を持っていない

fridays <- df[format(df$datestamp, "%A") == "Friday",] 

あなたの例のデータを使用することができますので、これは空のデータフレームです。

さらに日数を設定する場合は、曜日の列を作成してサブセットを作成する方が簡単かもしれません。さらに投機に行く

df$day.of.week <- format(df$datestamp, "%A") 
fridays <- df[df$day.of.week == "Friday",] 

あなたは、データの各サブセットに同じ事をする予定がある場合は、間のデータの分割適用-組み合わせるアプローチ(さまざまなapplyに関連する機能とplyrパッケージに見てその他)。

+0

ありがとうございます。これは、私がしたいことを正確に行うのを助けました。 – bhinks

0

lubridateを使用するもう1つの方法があります。

# READ DATA 
dat <- read.table(text = 
"20111001|37|9|9 
20111002|48|6|11 
20111031|42|6|8", 
sep = "|", header = F, 
) 

# FORMAT DATE COLUMN 
library(lubridate) 
dat <- transform(dat, V1 = ymd(V1)) 

# CREATE SUBSET 
subset(dat, wday(V1, label = T) == 'Sat') 
関連する問題