У меня есть матрица с 2 столбцами, начало матрицы показано ниже:Как отделить строки в столбце на основе спецификации?
SNP Pi1
[1,] "SNP_Label" "Pi1"
[2,] "rs482519" "0.3722219"
[3,] "rs12196956" "0.3212364"
[4,] "CNV548726" "0.3112315"
[5,] "CNV356212" "0.3078721"
[6,] "rs4792617" "0.3023402"
[7,] "CNV2095401" "0.2979626"
[8,] "CNV4528251" "0.29391"
[9,] "rs9369426" "0.2860793"
[10,] "rs31672" "0.2790241"
[11,] "rs1323446" "0.2778401"
Спецификация является то, что я хочу, чтобы отделить ОНП, которые начинаются с «RS» из ОНП, которые начинаются с «CNV» и получить новую матрицу для каждого из двух типов SNPS вместе с их соответствующими значениями Pi1. Имена SNP являются случайными, поэтому «rs» или «CNV» будут отображаться случайным образом в столбце от строки к строке.
Я думаю, мне может понадобиться цикл for для запуска через первые 2 символа каждой записи в столбце SNP, но я не знаю, что это правильно или нет.
... почему ваши данные являются матрицей, а не рамкой данных? Вы уверены, что импортировали его правильно? –
им не уверен. Я всегда импортирую данные с помощью 'data <- read.table()'. это дает мне мои данные в виде матрицы или data.frame? есть разница? – zfz
Справа. Вам нужно импортировать, используя 'read.table (*, header = TRUE)'. Посмотрите, что первая строка вашей матрицы? Это имена ваших столбцов. Без бита 'header = TRUE' R будет рассматривать их как часть ваших данных. В дополнение к тому, чтобы дать вам ложную строку, она испортит второй столбец, который R импортировал как текст, а не числовой, который, как я предполагаю, является тем, чем он должен быть. –