【问题标题】:Copy rows of dataframes in R复制R中的数据框行
【发布时间】:2018-06-19 21:53:06
【问题描述】:

我有一个数据框:

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 的行填充了所有没有空列值的数据。如果rows 2 &amp; 3 的单元格中缺少值,我想将所有单元格值从id-1 复制到id 2 and 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

提前感谢您的帮助

【问题讨论】:

    标签: r dataframe


    【解决方案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
    

    【讨论】:

    • 嗨。谢谢你的回答。完美运行。我有一个后续问题。我用id - 1 将行存储在不同的数据框(df2)中是什么?我该怎么做才能用"" or NAs 复制这些列?
    • @DigvijaySawant - 如果我理解正确,您应该可以将 df[1,-1] 替换为 df2
    猜你喜欢
    • 2014-03-01
    • 1970-01-01
    • 2015-06-26
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 2018-04-18
    • 1970-01-01
    • 2018-01-07
    相关资源
    最近更新 更多