有没有一种整洁的方法来突变小标题中的单个细胞?

Is there a tidy way to mutate individual cells in a tibble?

如何更改单个单元格,最好使用 %>%?

例如:

library(dplyr)

df <- iris %>% 
  slice(1:5) 

产生这个:

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa

如果我想改变一个单元格,我会这样做:

df[1,1] <- 6

这给了我这个:

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          6.0         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa

但是有更好的方法吗?

您可以使用 purrr::assign_in:

library(tidyverse)

iris %>% 
  slice(1:5) %>% 
  assign_in(list(1, 1), 6)
#  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#1          6.0         3.5          1.4         0.2  setosa
#2          4.9         3.0          1.4         0.2  setosa
#3          4.7         3.2          1.3         0.2  setosa
#4          4.6         3.1          1.5         0.2  setosa
#5          5.0         3.6          1.4         0.2  setosa