2016-12-15 2 views
-1

Pentad日付(重複しない日付の平均ではない)に基づいて次のcsvファイルをサブセット化したいと思います。たとえば、次のようにサブセットcsvデータのPentad日付に基づくR

1.January 1 to January 5 
2.January 6 to January 10 
... 
73.December 27 to December 31. 

ここタッド日の完全なリストです:

List of Pentad dates

The Complete Data

サンプルデータ

SN,CY,Y,M,D,H,lat,lon,cat 
198305,5,1983,8,5,0,9.1,140.7,"TD" 
198305,5,1983,8,5,6,9.3,140.5,"TD" 
198305,5,1983,8,5,12,9.6,139.9,"TD" 
198305,5,1983,8,5,18,9.9,139.4,"TS" 
198305,5,1983,8,6,0,10.2,138.8,"TS" 
198305,5,1983,8,6,6,11,138.1,"TS" 
198305,5,1983,8,6,12,11.8,137.3,"TS" 
198305,5,1983,8,6,18,12.4,136.4,"Cat1" 
198305,5,1983,8,7,0,12.8,135.8,"Cat1" 
198305,5,1983,8,7,6,13.6,134.7,"Cat1" 
198305,5,1983,8,7,12,14.4,133.9,"Cat2" 
198305,5,1983,8,7,18,15,133.5,"Cat4" 
198305,5,1983,8,8,0,15.8,132.8,"Cat4" 
198305,5,1983,8,8,6,16.3,132.4,"Cat4" 
198305,5,1983,8,8,12,17.1,132,"Cat5" 
198305,5,1983,8,8,18,17.4,131.4,"Cat5" 
198305,5,1983,8,9,0,17.8,130.8,"Cat5" 
198305,5,1983,8,9,6,18.1,130.7,"Cat4" 
198305,5,1983,8,9,12,18.7,130.3,"Cat4" 
198305,5,1983,8,9,18,18.9,130.4,"Cat4 

SNは一意の識別子であり、Yは年では、 、Mは月、Dは日、Hは時間です。一意の番号が1つのペンタッドに含まれる場合、それはもはや次のサブセットに含まれるべきではない。

私は(前のポストからベース)8月のためにこれを試してみました:

P1 <- c(1,6,11,16,21,26) 
P6 <- c(5,10,15,20,25,30) 
res <- Map(function(x,y) subset(df1, M==8 & D >=x & D <= y), d1, d2) 

しかし、それは2月4

に1月31日が含まれているため、私は開始ペンタッド(P7)とのマッピングに問題を抱えています

誰でもRでこれを行う方法を提案できますか?病気は助けてください。

答えて

0
library(stringr) 
df$Date = paste(df$Y, str_pad(df$M,2,'left','0'), str_pad(df$D,2,'left','0'), sep='-') 
# Extract day of year (int 0 to 365) from POSIXlt date 
df$yday = as.POSIXlt(df$Date)$yday + 1 

今、それは些細です:

df$pentad = ceiling(df$yday/5) 
+0

私はこれを試してみましたが、これはまだ、この(9月-8月のためのサンプル)よりも簡単な方法が正しい方法である場合や、イムわかりません。あなたのコードから「1年中」を利用しました。最後の行df $ pentadは何をしていますか? d1 <-c(216,221,226,231,236,241,246,251,256,261,266)d2 <-c(220,225,230,235,240,245,250,255,260,265,270)res < - Map(function、x、y)> x&yday <= y)、d1、d2) lapply(res、head 、2) – ichabod

+0

サブセットを取得するには 'split(df、df $ pentad)'を実行します。これは、それぞれがペンタッドに対応するデータフレームのリストを提供します。 – sirallen

+0

Wow.Amazing !.助けてくれてありがとう! – ichabod

関連する問題