2015-08-18 2 views
0

У меня есть матрица с 1 колонке:Добавление нового столбца в матрице в R

> Control_Title_name 

vehicle_scan_id4 
153 "CL2004060801AA" 
155 "CL2004060801AA" 
232 "EC2004102602AA" 

Я хочу, чтобы добавить новый столбец (названный «Класс»), как показано ниже:

> Control_Title_name 

vehicle_scan_id4 Class 
     153 "CL2004060801AA" "Control" 
     155 "CL2004060801AA" "Control" 
     232 "EC2004102602AA" "Control" 

Длина первого столбца («vehicle_scan_id4») является переменной, поэтому я хочу, чтобы «Control» отображался в каждой строке как значение во втором столбце («Класс»).

+0

'Control_Title_name $ Class =" Control "' Это то, что вы хотите сделать? – Sidhha

+0

На данный момент моя матрица содержит только 1 столбец «vehicle_scan_id4». Я хочу добавить еще один столбец в ту же матрицу, которая содержит символ («Контроль»), и он реплицируется по всей длине столбца 1. – user3253470

ответ

1

Вы можете использовать cbind() для этого:

Control_Title_name <- matrix(c('CL2004060801AA','CL2004060801AA','EC2004102602AA'),3,dimnames=list(c('153','155','232'),c('vehicle_scan_id4'))); 
Control_Title_name; 
##  vehicle_scan_id4 
## 153 "CL2004060801AA" 
## 155 "CL2004060801AA" 
## 232 "EC2004102602AA" 
Control_Title_name <- cbind(Control_Title_name,Class='Control'); 
Control_Title_name; 
##  vehicle_scan_id4 Class 
## 153 "CL2004060801AA" "Control" 
## 155 "CL2004060801AA" "Control" 
## 232 "EC2004102602AA" "Control" 

Ответ на ваш второй вопрос:

Control_Title_name[,'vehicle_scan_id4'] <- paste0(Control_Title_name[,'vehicle_scan_id4'],'.CEL'); 
Control_Title_name; 
##  vehicle_scan_id4  Class 
## 153 "CL2004060801AA.CEL" "Control" 
## 155 "CL2004060801AA.CEL" "Control" 
## 232 "EC2004102602AA.CEL" "Control" 
+0

Да, это сработало. Спасибо вам всем. – user3253470

+0

Как я могу добавить «.CEL» в конце каждого значения в 1-ом столбце (vehicle_scan_id4). Так что значения станут CL2004060801AA.CEL ... EC2004102602AA.CEL ??? – user3253470

+0

@ user3253470 См. Редактирование. – bgoldst

0

альтернативному

library(dplyr) 

Control_Title_name %>% 
    as.data.frame() %>% 
    mutate(Class='Control') 

    vehicle_scan_id4 Class 
1 CL2004060801AA Control 
2 CL2004060801AA Control 
3 EC2004102602AA Control 
+0

Как я могу добавить «.CEL» в конце каждого значения в 1-ом столбце (vehicle_scan_id4). Так что значения станут CL2004060801AA.CEL ... EC2004102602AA.CEL ??? – user3253470

0
> Phenodata 
    Name     FileName    Target  
153 "EC2004060203AA.CEL" "EC2004060203AA.CEL" "Treatment" 
155 "EC2004060205AA.CEL" "EC2004060205AA.CEL" "Treatment" 
232 "EC2004102606AA.CEL" "EC2004102606AA.CEL" "Treatment" 
153 "CL2004060801AA.CEL" "CL2004060801AA.CEL" "Control" 
155 "CL2004060801AA.CEL" "CL2004060801AA.CEL" "Control" 
232 "EC2004102602AA.CEL" "EC2004102602AA.CEL" "Control" 

Это как моя окончательная матрица выглядит как. Есть ли способ, чтобы я мог фильтровать только уникальные строки на основе их значений, а не на row.names. Например, 4-й и 5-й строки содержат точно такие же значения. Возможно ли, что моя новая матрица содержит только один из них, а не оба.

Смежные вопросы