在dplyr中过滤和不过滤

时间:2016-07-26 20:01:13

标签: r dplyr

在基础R中执行以下操作的dplyr模拟是什么?

iris$Sepal.Length[iris$Sepal.Length>2] <- iris$Sepal.Length[iris$Sepal.Length>2] * 10

我正在尝试使用过滤器,但无法返回到原始数据集(没有join

2 个答案:

答案 0 :(得分:4)

您可以mutateifelse一起使用,以获得与@alistaire的评论相同的结果:

iris %>% mutate(Sepal.Length = ifelse(Sepal.Length > 2, Sepal.Length * 10, Sepal.Length))

答案 1 :(得分:1)

如果我们使用ifelse,我们可以避开library(data.table) as.data.table(iris)[Sepal.Length > 2, Sepal.Length := Sepal.Length * 10] 并加快速度

(1[0-9]{2})\s+(\w+(?:-\w+)+)\s+(\w+)\s+(\w+(?:-\w+)+)\s+(\w+)