2014-01-23 47 views
1

這可能很基本,但我搜索了25分鐘,一直未能找到適合我的解決方案。使用子集中的數據替換較大的數據幀中的數據

我已經爲SITE分配了一個數據框(dataSC)。 我得到dataSC_s,它看起來像這樣(但更長時間):

SURVEY_DATE SITE TIME_BLOCK ACTIVE_FISHING 
    1/13/2013 1a-5  9   2 
    1/13/2013 1a-5  10   3 
    1/13/2013 1a-5  11   3 
    1/13/2013 1a-5  12   4 
    1/13/2013 1a-5  13   3 
    1/13/2013 1a-5  14   4 
    1/13/2013 1a-5  15   4 
    1/13/2013 1a-5  16   3  
    1/14/2013 1a-5  9   2 
    1/14/2013 1a-5  10   3 
    1/14/2013 1a-5  11   3 
    1/14/2013 1a-5  12   4 
    1/14/2013 1a-5  13   3 
    1/14/2013 1a-5  14   4 
    1/14/2013 1a-5  15   4 
    1/14/2013 1a-5  16   3 
    1/15/2013 1a-5  9   2 
    1/15/2013 1a-5  10   3 
    1/15/2013 1a-5  11   3 
    1/15/2013 1a-5  12   4 
    1/15/2013 1a-5  13   3 
    1/15/2013 1a-5  14   4 
    1/15/2013 1a-5  15   4 
    1/15/2013 1a-5  16   3 

然後我子集SURVEY_DATE(創造dataSC_sd),所以可以做哪些改變ACTIVE_FISHING計算。 我想用dataSC_sd中的新值替換dataSC_s中的ACTIVE_FISHING。 我已經試過:

min.row <- min(as.numeric(row.names(dataSC_sd))) 
max.row <- max(as.numeric(row.names(dataSC_sd))) 
dataSC_s[min.row:max.row,"ACTIVE_FISHING"] <- dataSC_sd$ACTIVE_FISHING 

但是,這並不工作,因爲在dataSC_s索引號不連續的,因爲dataSC_s是dataSC的一個子集。

有誰知道我該怎麼做? 在此先感謝。

回答

0

你可以試試這個:

dataSC_s[row.names(dataSC_sd),"ACTIVE_FISHING"] <- dataSC_sd$ACTIVE_FISHING 

所以你索引匹配dataSC_sd的rownames該行,因爲這是dataSC_s一個子集它應該工作。請注意,row.names(dataSC_sd)是一個字符向量,因此您按照與索引"ACTIVE_FISHING"相同的方式使用「名稱」進行索引,這適用於索引具有名稱的任何維。