如何使用dplyr覆盖数据?

时间:2019-02-18 14:19:01

标签: r dplyr

df <- data.frame(a = c(1, 2, 3), b = c(4, 5, 6))
#>   a b
#> 1 1 4
#> 2 2 5
#> 3 3 6

我想出了如何用基数R覆盖数据。也许那是学习R的第一天。

df[2:3, 2] <- c(50, 60)
#>   a b
#> 1 1 4
#> 2 2 50
#> 3 3 60

我从来没有找到使用dplyr的简单方法。如何使用管道%>%覆盖数据?

1 个答案:

答案 0 :(得分:3)

我们可以在replace中使用mutate。如果我们可以使用列名,即'b',replace和'b',只需在list中指定replace参数,并以行索引和values作为vector

library(dplyr)
df %>%
   mutate(b = replace(b, 2:3, c(50, 60)))
#   a  b
#1 1  4
#2 2 50
#3 3 60

或指定mutate_at

中的列索引
df %>%
   mutate_at(2, replace, list = 2:3, values = c(50, 60))