【问题标题】:Using Dplyr fill empty cells using corresponding values in another column使用 Dplyr 使用另一列中的相应值填充空单元格
【发布时间】:2018-07-02 18:18:50
【问题描述】:

一个数据框:

a = c("a", "", "c", "", "e")
b = c(1, 2, 3, 4, 5)
c = c("g", "h", "i", "j", "k")

df = data.frame(a,b,c)

当“a”为空时,如何使用 dplyr 用“c”列中的相应值填充“a”列。我知道如何使用 data.table 来做到这一点。

谢谢。

【问题讨论】:

    标签: r dplyr tidyverse


    【解决方案1】:

    这可以通过mutateifelse 完成。请注意,我添加了stringsAsFactors = FALSE 以避免在创建数据框时创建因子列,因为在这种情况下处理字符更容易。

    a <- c("a", "", "c", "", "e")
    b <- c(1, 2, 3, 4, 5)
    c <- c("g", "h", "i", "j", "k")
    
    df <- data.frame(a,b,c, stringsAsFactors = FALSE)
    
    library(dplyr)
    
    df2 <- df %>% mutate(a = ifelse(a %in% "", c, a))
    df2
    #   a b c
    # 1 a 1 g
    # 2 h 2 h
    # 3 c 3 i
    # 4 j 4 j
    # 5 e 5 k
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-28
      • 2022-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多