根据“公式”从数据框中提取列]]

问题描述 投票:0回答:2

我有一些类似的数据:

  data(iris)

  iris %>%
    select(Species, everything()) %>%
    rename(Y = 1) %>%
    rename_at(vars(-c(1)), ~str_c("X", seq_along(.)))

数据:

       Y  X1  X2  X3  X4
1 setosa 5.1 3.5 1.4 0.2
2 setosa 4.9 3.0 1.4 0.2
3 setosa 4.7 3.2 1.3 0.2
4 setosa 4.6 3.1 1.5 0.2
5 setosa 5.0 3.6 1.4 0.2
6 setosa 5.4 3.9 1.7 0.4

我添加了一个随机变量:

  d$noise <- rnorm(length(d))

我正在尝试仅动态提取Y, X1, X2... XN变量。我目前拥有的是:

d %>%
  select("Y", cat(paste0("X", seq_along(2:ncol(.)), collapse = ", ")))

这不起作用,因为它考虑了noise列,即使没有noise列也不起作用。

所以我试图创建一个仅提取Y, X1, X2...XN列的新数据框。

我有一些看起来像这样的数据:数据(iris)虹膜%>%select(Species,everything())%>%rename(Y = 1)%>%rename_at(vars(-c(1)),〜 str_c(“ X”,seq_along(。)))数据:Y ...

r
2个回答
3
投票

dplyr提供了两个select helper functions,您可以将--- contains用于文字字符串,或matches用于正则表达式。


0
投票

我们也可以使用

© www.soinside.com 2019 - 2024. All rights reserved.