2016-06-01 11 views
1

私は2つの変数IDarrivalを持つデータフレームを持っています。サブセットデータフレーム(ID別、7日以内)

head(sun_2) 
Source: local data frame [6 x 2] 

     ID arrival 
     (chr) (dats) 
1 027506905 01.01.15  
2 042363988 01.01.15  
3 026050529 01.01.15  
4 028375072 01.01.15  
5 055384859 01.01.15  
6 026934233 01.01.15 

がどのように私は7日以内に到着持っIDすることにより、データのサブセットができます:ここに私のデータフレームのヘッドがありますか?

+0

7日以内に何がありますか?各IDの最初の観測?また、 'dput(head(sun_2))'はあなたのデータを表示するのに役立ちます。 –

+4

あなたはあなたの出力の例を挙げることができますか?このリンクのガイドラインに沿って質問を再現してください。 http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – theArun

+0

悪い投稿の申し訳ありません...はい、最初の観察から7日以内に。重複しているいくつかの観察(同じID)がありますが、私は最初の観察から7日以内に到着するだけで、それだけでintrestedです。 – zde

答えて

0

他の多くの人が言っていたように、元の観察がどのように見えるかといった情報がなくても、私たちはあなたの問題が何か前提を取らずに正確に得ることはできません。

元の日付を示すデータの列があるとしますか?これらの行は、as.Dateの形式になっています。

#generate Data 
Data <- data.frame(ID = as.character(1394:2394), 
       arrival = sample(seq(as.Date('2015/01/01'), as.Date('2016/01/01'), by = 'day'), 1001, replace = TRUE)) 

# Make the "Original Observation" Variable 
delta_times <- sample(c(3:10), 1001, replace = TRUE) 
Data$First <- Data$arrival - delta_times 

これは、それが事実であれば、解決策はそうのように、difftimeを使用することです私は、この

ID arrival  First 
1 1394 2015-11-06 2015-10-28 
2 1395 2015-08-04 2015-07-26 
3 1396 2015-04-19 2015-04-16 
4 1397 2015-05-13 2015-05-03 
5 1398 2015-07-18 2015-07-11 
6 1399 2015-01-08 2015-01-03 

のように見えるのデータセットを提供します:

# Now we need to make a subsetting variables 
Data$diff_times <- difftime(Data$arrival, Data$First, units = "days") 
Data$diff_times 

within_7 <- subset(Data, diff_times <=7) 

max(within_7$diff_times) 
Time difference of 7 days 
0

それは少しですあなたが提供した情報があれば確信が持てませんが、私はこのようにすることができます:

library(dplyr) 
dt %>% group_by(ID) %>% filter(arrival < min(arrival) + 7) 
+0

Thx!それはまさに私がやりたいことです...それは動作します! – zde

+0

これがどのように機能するかもう少し説明してください。 – StatsSorceress

+0

'group_by'コマンドの結果を' filter'コマンドにパイプしていると思いますが、各IDは一意であると思っていますので、 'group_by'がどのように動作するのか分かりません。 – StatsSorceress

関連する問題