Fill in data frame with values from rows above

前端 未结 4 1362
小鲜肉
小鲜肉 2020-12-10 02:23

Say I have a data frame like this:

ID,  ID_2, FIRST, VALUE
-----------------------
\'a\', \'aa\', TRUE, 2
\'a\', \'ab\', FALSE, NA
\'a\', \'ac\', FALSE, NA
\         


        
4条回答
  •  旧巷少年郎
    2020-12-10 02:46

    If the VALUE for a specific ID always appears in the first record, which seems to be the case for your data, you can use match to find that record:

    df <- read.csv(textConnection("
    
    ID,  ID_2, FIRST, VALUE
    'a', 'aa', TRUE, 2
    'a', 'ab', FALSE, NA
    'a', 'ac', FALSE, NA
    'b', 'aa', TRUE, 5
    'b', 'ab', FALSE, NA
    
    "))
    
    df$VALUE <- df$VALUE[match(df$ID, df$ID)]
    df
    #    ID  ID_2  FIRST VALUE
    # 1 'a'  'aa'   TRUE     2
    # 2 'a'  'ab'  FALSE     2
    # 3 'a'  'ac'  FALSE     2
    # 4 'b'  'aa'   TRUE     5
    # 5 'b'  'ab'  FALSE     5
    

提交回复
热议问题