更改 R 中 tibble 列元素的值

Change value in tibble column element in R

我有一个数据集:

library(tidyverse)
fac = factor(c("a","b","c"))
x = c(1,2,3)
d = tibble(fac,x);d

看起来像这样:

# A tibble: 3 × 2
  fac       x
  <fct> <dbl>
1 a         1
2 b         2
3 c         3

我想将与因子 b 对应的列 x 的值 2 更改为 3.14。

如何在 dplyr 管道框架中实现?

我们可以用replace

library(dplyr)
library(magrittr)
d %<>% 
   mutate(x = replace(x, fac == "b", 3.14))

-输出

d
# A tibble: 3 × 2
  fac       x
  <fct> <dbl>
1 a      1   
2 b      3.14
3 c      3   

ifelse 语句的另一种选择:

library(dplyr)

d %>% 
  mutate(x = ifelse(fac == "b", 3.14, x))
  fac       x
  <fct> <dbl>
1 a      1   
2 b      3.14
3 c      3