Я использую набор данных ALL из Bioconductor.Моя задача - преобразовать атрибут «BT» в категориальные переменные всего с двумя уровнями «B» и «T», а затем проверить все гены на предмет значительной ассоциации с подтипом заболевания B / T с помощью ANOVA, а затем построить р-значения.
В качестве решения я выполнил следующее:
> bcell = grep("^B", as.factor(ALL$BT))
> tcell = grep("^T", as.factor(ALL$BT))
Затем я адаптировал фрагмент кода, который я также использовал для возраста:
> anova.lm.bcell <- function(x) {
+ df.tmp <-data.frame(Expr=x,bcell)
+ anova(lm(bcell~Expr,df.tmp)) ["Expr", "Pr(>F)"]
+ }
Но когда яоценить роль B-клетки (от BT) в экспрессии генов с помощью приведенного ниже кода. Я получаю ужасное сообщение «различное количество строк»!
p.bcell <- apply(exprs(ALL), 1, anova.lm.bcell)
Error in data.frame(Expr = x, bcell) :
arguments imply differing number of rows: 128, 95
Это имеет смысл, у меня 95 B-клеток и33 "Т" клетки, но я не могу разработать сценарий, который будет работать?