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的简单方法。如何使用管道%>%
覆盖数据?
答案 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))