2013-11-12 1 views
0

говорят, что вы имеете в Rновая матрица отдельных столбцов R

m = matrix(0, 10, 5, dimnames = list(
            c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J"), 
            c(1, 2, 3, 4, 5))) 
m[1,] = c(0,0,0,0,1) 
m[2,] = c(0,0,0,1,1) 
m[3,] = c(0,0,1,1,1) 
m[4,] = c(0,0,1,1,0) 
m[5,] = c(1,0,0,0,0) 
m[6,] = c(1,1,1,0,0) 
m[7,] = c(0,1,1,0,0) 
m[8,] = c(0,1,1,0,0) 
m[9,] = c(0,1,1,1,0) 
m[10,] = c(1,1,1,0,1) 

Выше вы видите матрицу м. У меня есть другая матрица р, что:

p = matrix(0, 1, 5, dimnames = list(
            c("A"), 
            c(1, 2, 3, 4, 5))) 
p[1,] = c(0.2,0.03,0.2,0.01,1) 

У меня есть матрица с конкретными значениями сказать (п-значения), только один столбец. Я хочу сделать новую матрицу из М, но только те столбцы, где значение для этого столбца в р сказать < 0,05

Так в основном, я хочу в R:

for (i in 1:length(p){ 
    if (p[1,i] < 0.05){ 
     #remember i in a list to extract later? 
     mycols.append(i) 
}} 

myNewMat <- matrix[,mycols] 

ТНХ

+0

Пожалуйста, проверьте это [ссылка] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). Хороший воспроизводимый пример поможет другим легче решить ваш вопрос. –

ответ

1

Try ниже и посмотреть, хотите ли вы этого.

myNewMat <- m[,p < 0.05] 
+0

привет, и спасибо за ответ, но это дает ошибку: объект 'i' не найден – StudentOfScience

+0

@StudentOfScience мой обновленный ответ дает вам то, что вы хотите? –