我想找到一种使用tidyverse
来更改特定行的几列中的值的方法。
例如,使用base
R
和iris
数据集:
iris[iris$Sepal.Length == 5.1, c("Petal.Length",
"Petal.Width")] <- c(1.5,
0.5)
到目前为止,我是通过tidyverse
找到的,但是如何仅更改Sepal.Length == 5.1
所在的行的这些值?我知道我可以filter
进行所需的行,然后更改值,但是如果我想像上面的base
示例那样保留整个数据集怎么办?:
myiris <- iris %>%
mutate_at(c("Petal.Length","Petal.Width"),
funs(recode(., "1.4" = 1.5, "0.2" = 0.5)))
谢谢!
答案 0 :(得分:0)
也许这行得通,不是最优雅,但对我有用:
library(tidyverse)
myiris <- iris %>%
mutate_at(c("Petal.Length","Petal.Width"),
funs(ifelse(Sepal.Length == 5.1, c(1.5, 0.5), c(Sepal.Length, Sepal.Width))))