R 选择此选项可在同一select调用中删除并保留某些变量

R 选择此选项可在同一select调用中删除并保留某些变量,r,dplyr,R,Dplyr,如果可能的话,我想在同一个select()call中删除数据帧中的某些功能并对其重新排序。与select(-var\u to\u drop)%%>%select(var\u I\u want\u first,everything())相反,这可以在同一个调用中完成吗 例如,使用diamonds数据集,假设我要删除克拉字段,将price作为第一个字段,然后将其后的所有内容()保持在相同的顺序?尝试: library(tidyverse) diamonds %>% select(-carat,

如果可能的话,我想在同一个
select()
call中删除数据帧中的某些功能并对其重新排序。与
select(-var\u to\u drop)%%>%select(var\u I\u want\u first,everything())相反,
这可以在同一个调用中完成吗

例如,使用diamonds数据集,假设我要删除克拉字段,将price作为第一个字段,然后将其后的所有内容()保持在相同的顺序?尝试:

library(tidyverse)
diamonds %>% select(-carat, price, everything()) # keeps carat
diamonds %>% select_at(vars(-carat, price, everything())) # also keeps carat?
预期结果是:

# desired outcome with multiple select() calls, want to do it in one:
diamonds %>% select(-carat) %>% select_at(vars(price, everything()))
# A tibble: 53,940 x 9
   price cut       color clarity depth table     x     y     z
   <int> <ord>     <ord> <ord>   <dbl> <dbl> <dbl> <dbl> <dbl>
 1   326 Ideal     E     SI2      61.5    55  3.95  3.98  2.43
 2   326 Premium   E     SI1      59.8    61  3.89  3.84  2.31
 3   327 Good      E     VS1      56.9    65  4.05  4.07  2.31
 4   334 Premium   I     VS2      62.4    58  4.2   4.23  2.63
 5   335 Good      J     SI2      63.3    58  4.34  4.35  2.75
 6   336 Very Good J     VVS2     62.8    57  3.94  3.96  2.48
 7   336 Very Good I     VVS1     62.3    57  3.95  3.98  2.47
 8   337 Very Good H     SI1      61.9    55  4.07  4.11  2.53
 9   337 Fair      E     VS2      65.1    61  3.87  3.78  2.49
10   338 Very Good H     VS1      59.4    61  4     4.05  2.39
#多个select()调用所需的结果,要在一次调用中完成:
钻石%>%select(-carat)%%>%select_at(vars(price,everything()))
#A tibble:53940 x 9
降价颜色清晰度深度表x y z
1326理想ESI2 61.5 55 3.95 3.98 2.43
2326保费E SI1 59.8 61 3.89 3.84 2.31
3327良好E VS1 56.9 65 4.05 4.07 2.31
4334保费I VS2 62.4 58 4.2 4.23 2.63
5335良好的JSI263.3584.344.352.75
6336非常好J VVS2 62.8 57 3.94 3.96 2.48
7336非常好I VVS1 62.3 57 3.95 3.98 2.47
8337非常好H SI1 61.9 55 4.07 4.11 2.53
9337公允价值VS2 65.1 61 3.87 3.78 2.49
10338非常好的H VS1 59.4 61 4 4.05 2.39

我能在一次调用select中得到我想要的结果吗?

我们可以在
everything()之后指定要删除的列。

library(dplyr)
diamonds %>% 
     select(price, everything(), -carat)