我有select()
和filter()
的顺序有关系吗?我可以根据自己的需要使用select(filter())
或filter(select())
吗?
答案 0 :(得分:2)
filter
引用列名。如果您的select
语句删除(或重命名)了要过滤的列,则它们将是等效的。否则,我认为顺序并不重要,因为filter
仅可以删除行,而select
仅可以删除列。例如:
library(tidyverse)
select(filter(mtcars, hp > 200), cyl, mpg)
cyl mpg 1 8 14.3 2 8 10.4 3 8 10.4 4 8 14.7 5 8 13.3 6 8 15.8 7 8 15.0
filter(select(mtcars, cyl, mpg), hp > 200)
filter_impl(.data,quo)中的错误:评估错误:对象'hp' 找不到。
答案 1 :(得分:0)
唯一相关的是操作顺序。内在的一种会先于外在的一种。因此,如果放置select(filter()),它将首先过滤data.frame,然后选择所需的变量。如果运行filter(select()),它将首先选择变量,然后对其进行过滤。