代码之家  ›  专栏  ›  技术社区  ›  stackinator Brenton Wiernik

dplyr替换为R中的位置

  •  0
  • stackinator Brenton Wiernik  · 技术社区  · 8 年前

    mtcars$mpg 22.8 .

    library(tidyverse)
    mtcars$mpg[[3]]
    

    有价值的 5,555 如下所示。它工作,但不是在第三排,因为我命令我的电脑做!相反,该值显示在 mtcars$英里/加仑

    mtreplace <- mtcars %>% mutate(mpg = replace(mpg, mpg[[3]], 5555))
    mtreplace
    mtreplace$mpg[[3]]
    mtreplace$mpg[[22]]
    

    我怎样才能让这个变化恰好发生在 ? 出了什么问题?

    3 回复  |  直到 8 年前
        1
  •  5
  •   G. Grothendieck    8 年前

    代码应该是

    mtcars %>% mutate(mpg = replace(mpg, 3, 5555))
    
        2
  •  2
  •   Dan Houghton    8 年前

    mtcars[3, "mpg"] <- 5555
    

    同样值得记住的是,对于数值向量,应该使用single[。当您想要得到一个元素而不是一系列元素(即您不想要另一个列表)时,[[用于列表)。

        3
  •  0
  •   akrun    8 年前

    我们可以用

    library(dplyr)
    mtcars %>%
         mutate(mpg = case_when(row_number() == 3 ~ 5555, TRUE ~ mpg))
    
    推荐文章