复制R中的数据框的行

时间:2018-06-19 21:53:07

标签: r dataframe

我有一个数据框:

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 个答案:

答案 0 :(得分:1)

使用一些矩阵索引来获取""的情况,然后覆盖从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