2013-05-08 5 views
0

다음 데이터 프레임은 레스토랑 (id #), 소유자 및 구매 날짜가 포함되어 있습니다. 식당에서 소유권을 변경하는 경우도 있지만 분석 목적으로 최신 집주인의 이름 만 유지하는 다른 열을 만들고 싶습니다. 이는 "구매 날짜"에 의해 결정됩니다. 이 새로운 열을 어떻게 만듭니 까? 이 예에서는 음식점 23이 2013 년 1 월 1 일에 손을 바꾸기 때문에 아래와 같이이 레스토랑의 모든 행에 대한 새 소유자 (Bob) 만 현재 소유자로 포함하고 싶습니다. 식당에서 손을 바꾸지 않으면 '현재 소유자'열의 이름을 '소유자'열로 유지합니다.여러 열의 값을 기반으로 R 데이터 프레임에 새 열을 만듭니다.

Restaurant <- c(23,23,23,23,23,23,23,15,15,15,15,17,17,17,17) 

    owner <- c("Chuck","Chuck","Chuck","Chuck","Bob","Bob","Bob", 
    "Hazel","Hazel","Hazel","Hazel","Pete","Pete","Pete","Pete") 

    purchaseDate <- c("3/4/2011","3/4/2011","3/4/2011","3/4/2011", 
    "1/1/2013","1/1/2013","1/1/2013","4/11/2010","4/11/2010","4/11/2010", 
    "4/11/2010","9/2/2012","9/2/2012","9/2/2012","9/2/2012") 

    df <- data.frame(Restaurant = Restaurant, owner=owner, purchaseDate=purchaseDate) 

    df$currentOwner <- c("Bob","Bob","Bob","Bob","Bob","Bob","Bob","Hazel","Hazel","Hazel","Hazel","Pete","Pete","Pete","Pete") 

답변

0

이를 사용할 수 있습니다

do.call(rbind, by(df, df$Restaurant, function(d) 
     within(d, currentOwner2 <- as.character(
      owner[which.max(as.Date(purchaseDate, format="%d/%m/%Y"))])))) 

감사 @Thomas을

+0

완벽한 :-)이 질문에 발굴을 위해! 감사. –

관련 문제