R基于标识变量在数据帧的列中分配值

时间:2018-02-08 20:11:50

标签: r dataframe duplicates na

EDITED

我有一个数据框,其中标识变量包含重复项。如何创建一个新变量(VAR2),我根据此标识变量为NA指定值。

    df <- data.frame(
  ID = c(1,2,3,4,4,4,7,8,9,10),
  VAR1 = c("a","b","c","d",NA,NA,"g","h","i","j")
)

数据框如下所示:

   ID VAR1 

    1   a        
    2   b      
    3   c       
    4   d       
    4   NA     
    4   NA    
    7   g      
    8   h      
    9   i    
   10   j    

预期输出

   ID VAR1 

    1   a        
    2   b      
    3   c       
    4   d       
    4   d     
    4   d    
    7   g      
    8   h      
    9   i    
   10   j    

1 个答案:

答案 0 :(得分:0)

require(data.table)
df <- fread('ID VAR1 VAR2
    1   a    a    
    2   b    b  
    3   c    c   
    4   d    d   
    4   NA   d  
    4   NA   d 
    7   g    g  
    8   h    h  
    9   i    i
   10   j    j')[,-'VAR1']
df
df[, VAR1 := replace(VAR2, seq_len(.N) > 1, NA), by = ID]
df