2012-10-15 6 views
-1

이 데이터 프레임이 있습니다. Trade_Date, Trades 및 Rejected가 포함될 다른 데이터 프레임을 만들고 싶습니다. 거부 된 입력란에는이 기준 (Trade_Date + 1 일)을 충족해야하는 Closing_Date의 값이 있어야합니다.날짜 계산을 기반으로하는 부분 집합 데이터 집합

X

Trade_Date Trades Closing_Date Rejected 
9/16/2011 4126528  9/16/2011 15 
9/19/2011 2565282  9/17/2011 33 
9/20/2011 2953963  9/20/2011 30 
9/21/2011 3255800  9/21/2011 6 
9/22/2011 2862185  9/22/2011 21 
9/23/2011 2405590  9/23/2011 30 
9/26/2011 3196284  9/24/2011 30 
9/27/2011 3761367  9/27/2011 15 
9/28/2011 3198177  9/28/2011 9 
9/29/2011 3255345  9/29/2011 6 
9/30/2011 3810356  9/30/2011 12 
10/3/2011 3817093  10/1/2011 21 

예를 들어, 내 옆에있는 안양은 다음과 같이해야합니다 :

Trade_Date  Trades Rejected 
9/16/2011  4126528 33 
9/19/2011  2565282 30 
9/20/2011  2953963 6 

등 많은 많은 행이 있기 때문에, 내가 프로그래밍 방식으로이 작업을 수행 할 필요가

. 어떤 도움을 줄 수 있습니까? 귀하의 예제 데이터 프레임의 행

+5

질문 시간은 여기에 있습니다. 그 패키지가 많은 도움이되기 때문에 [r]뿐만 아니라 'xts'와 'zoo'를 찾으십시오. –

답변

0

없음 사용자가 지정한 기준에 맞는 것이 없습니다, 그래서 나는이 일을하는 간단한 방법 보여주기 위해 약간 변경됩니다 :이 질문과 수십 대답 한 것처럼

#Read the data in 
dat <- read.table(text = "Trade_Date Trades Closing_Date Rejected 
9/16/2011 4126528  9/16/2011 15 
9/19/2011 2565282  9/17/2011 33 
9/20/2011 2953963  9/20/2011 30 
9/21/2011 3255800  9/21/2011 6 
9/22/2011 2862185  9/22/2011 21 
9/23/2011 2405590  9/23/2011 30 
9/26/2011 3196284  9/24/2011 30 
9/27/2011 3761367  9/27/2011 15 
9/28/2011 3198177  9/28/2011 9 
9/29/2011 3255345  9/29/2011 6 
9/30/2011 3810356  9/30/2011 12 
10/3/2011 3817093  10/1/2011 21",sep = "",header = TRUE) 

#Convert to date 
dat$Trade_Date <- as.Date(dat$Trade_Date,"%m/%d/%Y") 
dat$Closing_Date <- as.Date(dat$Closing_Date,"%m/%d/%Y") 

#Alter some rows to meet your criteria 
dat$Closing_Date[1:3] <- dat$Trade_Date[1:3] + 1 

#Then we can simply subset the data 
> dat[dat$Closing_Date == dat$Trade_Date+1,] 
    Trade_Date Trades Closing_Date Rejected 
1 2011-09-16 4126528 2011-09-17  15 
2 2011-09-19 2565282 2011-09-20  33 
3 2011-09-20 2953963 2011-09-21  30 
관련 문제