Я получаю эту ошибку Ошибка в log2 (exprs (gset)): нечисловой аргумент математической функции

Код такой:

gset <- ReadAffy()

pData(gset)

b1<-log2(exprs(gset))

boxplot(b1, col = 2:4)

str(exprs(gset))
List of 1
 $ : symbol gset

В третьей строке я получаю сообщение об ошибке «Ошибка в log2 (exprs (gset)): нечисловой аргумент математической функции».

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


person Shapol46    schedule 08.03.2018    source источник
comment
expres(gset) должен быть числовым, чтобы применить log2() функцию. Что он возвращает, когда вы пишете class(exprs(gset))?   -  person R18    schedule 08.03.2018
comment
Будет практически невозможно отладить это без воспроизводимого примера (что сложно, потому что наборы данных Affymetrix большие). str(exprs(gset)) было бы полезно.   -  person Ben Bolker    schedule 08.03.2018
comment
Он возвращает список. Я использовал его на прошлой неделе, и у меня не было проблем. Я не понимаю, что изменилось.   -  person Shapol46    schedule 08.03.2018
comment
Мы также не знаем, что изменилось, но гарантировано, что что-то изменилось - либо ваши данные, либо это не в точности те же команды, либо (менее вероятно ) вы обновили пакет, и он не работает идентично. Не могли бы вы отредактировать свой вопрос, включив в него результаты str(exprs(gset))?   -  person Ben Bolker    schedule 08.03.2018
comment
убедитесь, что вы запускаете чистый сеанс R (не загружены ненужные пакеты и т. д.)   -  person Ben Bolker    schedule 08.03.2018
comment
@ shapol46 Поместите дополнительную информацию в свой вопрос (не в комментарии), т.е. отредактируйте свой вопрос! Сделайте свой пример воспроизводимый   -  person jogo    schedule 08.03.2018
comment
На самом деле я загрузил много ненужных пакетов. Я открываю новую сессию и сообщаю вам. Команды такие же. Результат str(exprs(gset)) - тоже та же ошибка. Я добавлю это.   -  person Shapol46    schedule 08.03.2018
comment
Я написал ответ на свой вопрос, но его здесь нет. Проблема была из-за ненужных пакетов, но я не знаю, какой из них, потому что я загрузил много. Большое спасибо, @ Ben Bolker   -  person Shapol46    schedule 08.03.2018


Ответы (1)


В соответствии с идеей конфликта пакетов, выделенной выше, возможное объяснение может исходить из того факта, что функция exprs в пакете dplyr маскирует exprs в пакете Biobase, поскольку обе функции имеют одинаковое имя в обоих пакетах.

https://support.bioconductor.org/p/109128/#109719

В моем случае я решил проблему, разместив exprs = Biobase :: exprs в верхней части скрипта.

person Charles    schedule 27.06.2018