假设df
有50列,从Col_1
到Col_50
命名。
我正在尝试按名称和范围提取列,例如:
x <- df[,c("Col_1", "Col_3", "Col_7", "Col_8", "Col_12",
which(colnames(df)=="Col_15"):which(colnames(df)=="Col_26"),
which(colnames(df)=="Col_34"):which(colnames(df)=="Col_42"))]
如果我只使用名称或只使用索引范围,它就可以工作,但是当我同时使用这两个索引时,它会给出“未定义列选择”的错误。
答案 0 :(得分:2)
我们可以使用select
tidyverse
library(tidyverse)
df %>%
select(Col_1, Col_3, Col_7, Col_8, Col_12, col_15:col_26, col_34:col_42)
答案 1 :(得分:0)
假设Col_1
- Col_50
的位置不是连续的而不是确切的1st-50th
位置,那么base-R
中的选项可能如下:
df[paste("Col",c(1, 3, 7, 8, 12, 15:26, 34:42), sep = "_")]