Получавам тази грешка Грешка в 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
Написах отговор на въпроса си, но го няма тук. Проблемът беше от ненужни пакети, но не знам кой, защото бях заредил много. Благодаря ви много, @ Бен Болкър   -  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