有没有一种整洁的方法来使小块中的单个细胞发生变异?

时间:2019-02-13 23:29:35

标签: r dplyr 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

但是有更好的方法吗?

1 个答案:

答案 0 :(得分:5)

您可以使用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