Нормальное квантильное преобразование

Мне нужно сделать квантиль нормализации в R

Входной файл просто небольшое подмножество у меня более 5000 значений:

x <- data.frame(A =c(193973, 185750, 185511,NA), B= c(56433,52298, 53040, NA), C = c(4668, 6074,6246, NA))

программное обеспечение, которое я использую, рекомендует

xtransformed = qqnorm(x, plot.it =F)$x

Я не понимаю "$x" здесь, в конце концов?

Другой вопрос:

если ввод (это мой фактический ввод

x <- data.frame(A =c("A","B","C","D"), B = c("X", "Y", "Z","L"), C=c(193973, 185750, 185511, "NA"), D = c(56433,52298, 53040, "NA"), E = c(4668, 6074,6246, "NA"))

и я просто выбираю столбец, который я хочу преобразовать

y =x[,3:5]

Преобразовал это с тем кодом, и это не работает? Какова причина

ytransformed <- qqnorm(y, plot.it =F)$y

ytransformed 

Я это сделал. Теперь я хочу построить и посмотреть, изменился ли он или нет? Как мне это сделать?

1 ответ

preprocessCore Пакет в Биокондукторе имеет эту функцию. Сначала установите и загрузите его:

source('http://bioconductor.org/biocLite.R')
biocLite('preprocessCore')
library(preprocessCore)

Затем сделайте матрицу из вашего фрейма данных, и normalize.quantiles:

> x <- data.frame(A =c(193973, 185750, 185511,NA), B= c(56433,52298, 53040, NA), C = c(4668, 6074,6246, NA))
> m <- data.matrix(x,rownames.force=nrow(x))
> normalize.quantiles(m)
         [,1]     [,2]     [,3]
[1,] 85550.67 85550.67 80825.67
[2,] 82143.61 80825.67 82143.61
[3,] 80825.67 82143.61 85550.67
[4,]       NA       NA       NA
Другие вопросы по тегам