Удаление столбца класса S4 в R (flowCore) - PullRequest
0 голосов
/ 15 апреля 2020

Я работаю с пакетом flowCore, найденным в Bioconductor , который считывает мои файлы данных в формате класса S4. Вы можете ввести library(flowCore), а затем data(GvHD), который загружает пример набора данных. Когда вы набираете GvHD, вы видите, что этот набор данных состоит из 35 экспериментов, к которым можно получить доступ по отдельности, набрав, например, GvHD[[1]].

Сейчас я пытаюсь удалить два столбца FSC-H и SSC-H из всех экспериментов, но у меня ничего не получилось.

Я пробовал myDataSet<- within(GvHD, rm("FSC-H","SSC-H")), но это не работает. Буду очень признателен за любую помощь.

Ответы [ 2 ]

0 голосов
/ 16 апреля 2020

Я разместил свой вопрос на соответствующей странице GitHub для flowCore, и ответ был предоставлен Джейкобом Вагнером .

GvHD[[1]] является flowFrame, а не простой фрейм данных, поэтому назначение NULL не работает. Базовое представление также является матрицей, которая также не поддерживает удаление столбца путем присвоения ему NULL.

Если вы хотите удалить столбцы, вот несколько способов сделать это. Заметьте, что для всех этих я подставляю столбцы для всего flowSet вместо того, чтобы циклически проходить через каждый flowFrame. Но вы также можете выполнять эти операции для каждого flowFrame.

Как упоминал Грег, выберите столбцы, которые вы хотите сохранить:

data(GvHD)
all_cols <- colnames(GvHD)
keep_cols <- all_cols[!(all_cols %in% c("FSC-H", "SSC-H"))]
GvHD[,keep_cols]

Или вы можете просто отфильтровать подмножество:

GvHD[,!colnames(GvHD) %in% c("FSC-H", "SSC-H")]

Вы также можете получить числовые индексы, которые хотите отбросить, и затем использовать отрицательное подмножество.

# drop_idx <- c(1,2)
drop_idx <- which(colnames(GvHD) %in% c("FSC-H", "SSC-H"))
GvHD[,-drop_idx]
0 голосов
/ 15 апреля 2020

rm не предназначен для удаления столбцов. Обычная процедура - присвоить NULL этому столбцу:

for (i in 1:35){
  GvHD[[i]][,c("FSC-H","SSC-H")] <- NULL
}

Это то же самое, что вы сделали бы для фрейма данных.

...