首页 > 解决方案 > R - 选择最后 2 列

问题描述

我在下面有一个数据框,实际上它实际上有更多列,我只想选择最后两列。

   df <- read.table(text="
                 date1       date2              date3
    1            NA          2016-12-01    2016-12-01
    2            2017-01-01  2018-10-01    2016-12-01 
    3            2016-12-01  NA            2016-12-01
    4            NA          NA            2016-12-01
", header=TRUE)

在不指定列名的情况下如何做到这一点?

df %>%
  select(date2, date3)

标签: rselect

解决方案


您可以使用selectwithtail来获取最后 2 个列名

library(dplyr)

df %>% select(tail(names(.), 2))

#       date2      date3
#1 2016-12-01 2016-12-01
#2 2018-10-01 2016-12-01
#3       <NA> 2016-12-01
#4       <NA> 2016-12-01

在基数 R 中是

df[tail(names(df), 2)]

推荐阅读