Как отфильтровать фрейм данных по названному логическому вектору - PullRequest
0 голосов
/ 26 декабря 2018

У меня есть логическое имя, и я хочу использовать его для фильтрации исходного фрейма данных, где логическим вектором является ЛОЖЬ

Я пытался использовать соединение двух, но это не работает.

Именованный логический вектор выглядит следующим образом:

     fr_Ar_COO             fr_C_S              fr_SH        fr_aldehyde 
          TRUE               TRUE               TRUE              FALSE 

И я хочу отфильтровать фрейм данных, который выглядит следующим образом: (имена столбцов)

fr_Ar_COO             fr_C_S              fr_SH        fr_aldehyde         active 

такfr_aldehyde должно быть отфильтровано, потому что логический вектор имеет значение FALSE

1 Ответ

0 голосов
/ 26 декабря 2018

Вот один из способов:

# assuming your data frame is called df,
# and assuming 'v' is the logical vector
df[, names(v)[v]]

Использование names(v)[v] вернет только имена столбцов, для которых логический вектор имеет значение TRUE.

Вот пример сценария:

df <- data.frame(A=c(1:3), B=c(4:6), C=c(7:9))
df
v <- c(A=TRUE, B=FALSE, C=TRUE)
df[, names(v)[v]]

  A B C
1 1 4 7
2 2 5 8
3 3 6 9

  A C
1 1 7
2 2 8
3 3 9
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...