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'))