R 基于“公式”从数据框中提取列

R 基于“公式”从数据框中提取列,r,R,我有一些数据看起来像: data(iris) iris %>% select(Species, everything()) %>% rename(Y = 1) %>% rename_at(vars(-c(1)), ~str_c("X", seq_along(.))) 数据: 我添加一个随机变量: d$noise <- rnorm(length(d)) 这不起作用,因为它考虑了噪波列,即使没有噪波列也不起作用 因此,我试图创建一个新

我有一些数据看起来像:

  data(iris)

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

我添加一个随机变量:

  d$noise <- rnorm(length(d))
这不起作用,因为它考虑了噪波列,即使没有噪波列也不起作用

因此,我试图创建一个新的数据帧,它只提取Y、X1、X2…XN列。

dplyr提供了两个数据帧,您可以使用它们来包含文字字符串或匹配正则表达式

在这种情况下,你可以这样做

d %>%
  select("Y", contains("X"))

第一个在您提供的示例中有效,但如果您有包含任何X字符的其他变量,则会失败。第二个更为健壮,因为它只捕获名称为X后跟一个或多个数字的变量。

dplyr提供了两个变量,您可以将其用于文本字符串或正则表达式的匹配项

在这种情况下,你可以这样做

d %>%
  select("Y", contains("X"))

第一个在您提供的示例中有效,但如果您有包含任何X字符的其他变量,则会失败。第二个更健壮,因为它将只捕获名称为X后跟一个或多个数字的变量。

我们也可以使用

d %>%
  select(Y, starts_with('X'))
我们也可以使用

d %>%
  select(Y, starts_with('X'))
d %>%
  select(Y, starts_with('X'))