R-选择最后2列

时间:2018-12-28 00:48:19

标签: r select

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

   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)

4 个答案:

答案 0 :(得分:3)

您可以将l_Element = $("#pve"); //1st iteration l_Element = $("#tutorial"); //2nd iteration l_Element = $("#donation_home"); //3rd iteration l_Element = $("#register"); //4th iteration l_Element = $("#account_top"); //5th iteration l_Element = $("#races"); //6th iteration select一起使用以获取最后2个列名

tail

在基数R中是

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

答案 1 :(得分:2)

聚会迟到了。只是为了记录,tidyverse 中有一种方便的方法来选择最后一列:


library(tidyverse)
df %>% 
  select(last_col(offset = 1), last_col())

       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

reprex package (v0.3.0) 于 2021 年 1 月 20 日创建

Source

直接选择第一列:

> df %>% 
+   select(1,2)
       date1      date2
1       <NA> 2016-12-01
2 2017-01-01 2018-10-01
3 2016-12-01       <NA>
4       <NA>       <NA>

答案 2 :(得分:0)

没有dplyr:

df.minus.2.columns <- df[,c(-1,-2)]

抱歉,不知道如何使用dplyr。

答案 3 :(得分:0)

我们可以只使用ncol

df[(ncol(df)-1):ncol(df)]
#       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

或使用select_at

library(tidyverse)
df %>%
    select_at((ncol(.)-1) : ncol(.))