代码之家  ›  专栏  ›  技术社区  ›  Digvijay Sawant

复制r中的数据帧行

  •  1
  • Digvijay Sawant  · 技术社区  · 6 年前

    我有一个数据框:

    df <- data.frame(id = c('1','2','3'), b = c('b1', '', 'b3'), c = c('c1', 'c2', ''), d = c('d1', '', ''))
    
    id b   c   d
    1  b1  c1  d1
    2      c2 
    3  b3
    

    在那里与 id-1 填充了所有没有空列值的数据。我想复制所有单元格值 ID-1 进入之内 id 2 and 3 如果这些单元格中缺少 rows 2 & 3 . 最终输出如下:

    df2 <- data.frame(id = c('1','2','3'), b = c('b1', 'b1', 'b3'), c = c('c1', 'c2', 'c1'), d = c('d1', 'd1', 'd1'))
    
    id b   c   d
    1  b1  c1  d1
    2  b1  c2  d1
    3  b3  c1  d1
    

    提前谢谢你的帮助

    1 回复  |  直到 6 年前
        1
  •  1
  •   thelatemail    6 年前

    使用一些矩阵索引来获得 "" 案例,然后覆盖从 df :

    idx <- which(df[-1]=="", arr.ind=TRUE)
    df[-1][idx] <- unlist(df[1,-1][idx[,"col"]])
    
    #  id  b  c  d
    #1  1 b1 c1 d1
    #2  2 b1 c2 d1
    #3  3 b3 c1 d1