Таблица данных поднастройки с использованием & и grepl

У меня есть набор данных с именами столбцов, например:

names(d)
 [1] "Code"        "LX(RI)"      "LX(VO)"      "LX(MV)"      "LX(WC189)" "LX(WC035)"
 [7] "NX(RI)"      "NX(VO)"      "NX(MV)"      "NX(WC189)"   "NX(WC035)" "AX(RI)"     
[13] "AX(VO)"      "AX(MV)"      "AX(WC189)"   "AX(WC035)"   "SX3I(RI)"  "SXI(VO)"    
[19] "SXI(MV)"     "TX(RI)"      "TX(VO)"      "TX(MV)"      "TX(WC189)" "TX(WC035)"

С каждым столбцом связано несколько тысяч строк. Что я хочу сделать, так это использовать grepl для подмножества столбцов таблицы данных на основе тех, которые заканчиваются на RI И сохраняя столбец кода.

В настоящее время я разработал, как подмножить все столбцы RI в новую таблицу data.table, но я не могу понять, как включить столбец Code.

В настоящее время у меня есть:

RI <- d[, grepl("\\(RI", names(d)), with = FALSE]

Что дает мне то, что я хочу:

names(RI)
[1] "LX(RI)" "NX(RI)" "AX(RI)" "SX3I(RI)" "TX(RI)"

Я пытался (обратите внимание, что я включил &Code):

RI <- d[, grepl("\\(RI&Code", names(d)), with = FALSE]

Что я хочу вернуть таблицу данных со следующими столбцами:

[1] "LX(RI)" "NX(RI)" "AX(RI)" "SX3I(RI)" "TX(RI)" "Code"

Вышеуказанный мой желаемый результат. Однако код ничего не делает и возвращает пустую таблицу данных.

Пара вопросов:

  • Могу ли я использовать & в grepl? Если да, то мой пример использует & неправильно?
  • Если нет, есть ли какие-либо предложения о том, как создать подмножество для столбцов RI и кода?

person Gin_Salmon    schedule 12.09.2016    source источник


Ответы (1)


Попробуй это

ab <- c("Code","LX(RI)","LX(VO)","LX(MV)","TX(RI)","NX(RI)","NX(RI)")


ab[grepl("Code|RI",ab)]

[1] "Code"   "LX(RI)" "TX(RI)" "NX(RI)" "NX(RI)"
person Arun kumar mahesh    schedule 12.09.2016
comment
имена(df) ‹- c(Code,LX(VO),TX(RI),NX(RI)) df ‹- df[,grepl(Code|RI,names(df))] - person Arun kumar mahesh; 12.09.2016