2016-08-04 3 views
0

ввода (DF)Динамическое подмножество dataframe после шаблона ColName в R

> df 
    gender age LIST_12 LIST_24 LIST_42 anxious happy nervous 
1  11 12  20  18  29  31  6  28 
2  35 25  26  23  9  34 13  21 
3  20 8  28  27  26  26 34  29 
4  24 35  10  11  18  25 26  3 
5  34 8  4  3  29  33 25  35 

Желаемая выход (dfSubset)

Что бы лучший способ получить подмножество, содержащее только столбцы после LIST_ до конца. В этом случае я хотел бы только подмножество: тревожная, счастливая и нервная колонна.

anxious happy nervous 
1  31  6  28 
2  34 13  21 
3  26 34  29 
4  25 26  3 
5  33 25  35 

Информация

Я знаю, что я могу запустить следующий код, чтобы подмножество только колонного имена, начинающиеся со слова LIST_. Но это не то, что я ищу ...

dfSubset = subset(x = df, select = grep("LIST_", names(df))) 
dfSubset 

воспроизводимые источник

df <- structure(list(gender = c(11L, 35L, 20L, 24L, 34L), age = c(12L, 
25L, 8L, 35L, 8L), LIST_12 = c(20L, 26L, 28L, 10L, 4L), LIST_24 = c(18L, 
23L, 27L, 11L, 3L), LIST_42 = c(29L, 9L, 26L, 18L, 29L), anxious = c(31L, 
34L, 26L, 25L, 33L), happy = c(6L, 13L, 34L, 26L, 25L), nervous = c(28L, 
21L, 29L, 3L, 35L)), .Names = c("gender", "age", "LIST_12", "LIST_24", 
"LIST_42", "anxious", "happy", "nervous"), class = "data.frame", row.names = c(NA, 
-5L)) 
+0

Благодаря Ричард он работает. Я думаю, что это может быть принято как ответ. – S12000

ответ

2

Вы могли бы найти, какой столбец является последним, начиная с LIST, добавьте 1, и использовать этот номер для начните последовательность с количества столбцов.

df[(max(grep("^LIST", names(df))) + 1):ncol(df)] 
# anxious happy nervous 
# 1  31  6  28 
# 2  34 13  21 
# 3  26 34  29 
# 4  25 26  3 
# 5  33 25  35 
1

Мы можем использовать select из dplyr

library(dplyr) 
df %>% 
    select(-matches("LIST|gender|age")) 
# anxious happy nervous 
#1  31  6  28 
#2  34 13  21 
#3  26 34  29 
#4  25 26  3 
#5  33 25  35 

Или это может быть

df %>% 
    select((tail(matches("LIST"),1)+1):ncol(.)) 
+0

Я думаю, что это не столбцы «после шаблона», его столбцы, кроме шаблонов – Batanichek

Смежные вопросы