【问题标题】:Renaming factor variables if a condition is satisfied in separate column如果在单独的列中满足条件,则重命名因子变量
【发布时间】:2015-02-20 20:47:03
【问题描述】:

我有一个看起来像这样的 df:

df <- data.frame(
    A = sample(c("Dog", "Cat", "Cat", "Dog", "Fish", "Fish")),
    B = sample(c("Brown", "Black", "Brown", "Black", "Brown", "Black")))
df

   A      B     
1  Dog    Brown
2  Cat    Black
3  Cat    Brown
4  Dog    Black
5  Fish   Brown
6  Fish   Black

只要在第二列中满足条件“Brown”,我就想将因子变量“Fish”重命名(最好使用 dplyr)为“Dog”。

   A      B     
1  Dog    Brown
2  Cat    Black
3  Cat    Brown
4  Dog    Black
5  Dog    Brown  #rename here
6  Fish   Black

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    你可以使用replace:

    df %>% mutate(A = replace(A, which(A == "Fish" & B == "Brown"), "Dog"))
    #     A     B
    #1  Cat Black
    #2 Fish Black
    #3  Dog Black
    #4  Dog Brown
    #5  Cat Brown
    #6  Dog Brown
    

    这是一个 data.table 版本:

    library(data.table)
    setDT(df)[A == "Fish" & B == "Brown", A := "Dog"]
    

    【讨论】:

      猜你喜欢
      • 2019-09-06
      • 1970-01-01
      • 1970-01-01
      • 2021-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-05
      相关资源
      最近更新 更多