dplyr重命名删除其他变量吗?

时间:2018-12-08 20:55:20

标签: r select dplyr rename

我试图使用dplyr重命名多个变量,但随后我无法访问未重命名的其他列,这不是我从文档中期望的。请注意,我使用重命名的plyr版本来使用此功能,但想使用dplyr版本来避免plyr和dplyr之间的毛茸茸的冲突。

示例:

airports_dest <- nycflights13::airports %>% 
  rename(lat = lat_dest, lon = lon_dest)) %>% 
  select(faa,lat_dest, lon_dest)

产量错误:

Error in select(faa, lat_dest, lon_dest) : object 'faa' not found

谢谢!

2 个答案:

答案 0 :(得分:1)

您报告的错误是由)通话结束时额外的rename引起的。

列在数据集中已经被命名为“ lat”和“ lon”。如果要将它们重命名为“ lat_dest”和“ lon_dest”,请翻转rename参数。

airports_dest <- 
    nycflights13::airports %>% 
    rename(lat_dest = lat, lon_dest = lon) %>%
    select(faa, lat_dest, lon_dest)

head(airports_dest)

#> # A tibble: 6 x 3
#>   faa   lat_dest lon_dest
#>   <chr>    <dbl>    <dbl>
#> 1 04G       41.1    -80.6
#> 2 06A       32.5    -85.7
#> 3 06C       42.0    -88.1
#> 4 06N       41.4    -74.4
#> 5 09J       31.1    -81.4
#> 6 0A9       36.4    -82.2

答案 1 :(得分:1)

您可以这样做:

airports_dest <- 
  nycflights13::airports %>% 
  select(faa, lat_dest = lat, lon_dest = lon)