r - 如何使用 dplyr 覆盖数据?

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

最佳答案

我们可以在mutate中使用replace。如果我们可以使用列名称,即“b”,则通过在 replace 中指定 list 参数来替换“b”,方法是使用索引行和作为向量

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))

关于r - 如何使用 dplyr 覆盖数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54749264/

相关文章:

r - 如何从 stargazer 的结果表中省略回归截距

r - Shiny :dplyr 返回错误消息

R(和 dplyr?) - 按组从数据帧中采样,最大样本量为 n

r - dplyr 0.3.0.2 rename() 习惯用法在加载 reshape 包时不稳定

r - 使用 "..."R 拆分函数的数组参数

r - mc.cores > 1 在 Windows 上不受支持

r - 如何计算列中每个类别的份额?

r - 如何根据每组n用采样行号按组填充列

r - 使用 Dplyr 查找数字是否减少或增加的差异

xml - 在 R XML Xpath 中,@href 返回文本 "href"