问题
I have a matrix with 1 column:
> Control_Title_name
vehicle_scan_id4
153 "CL2004060801AA"
155 "CL2004060801AA"
232 "EC2004102602AA"
I want to add a new column (named "Class") like below:
> Control_Title_name
vehicle_scan_id4 Class
153 "CL2004060801AA" "Control"
155 "CL2004060801AA" "Control"
232 "EC2004102602AA" "Control"
The length of first column ("vehicle_scan_id4") is variable so I want the "Control" appear in each row as a value in second column ("Class").
回答1:
You can use cbind() for this:
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"
Answer to your second question:
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"
回答2:
alternative
library(dplyr)
Control_Title_name %>%
as.data.frame() %>%
mutate(Class='Control')
vehicle_scan_id4 Class
1 CL2004060801AA Control
2 CL2004060801AA Control
3 EC2004102602AA Control
回答3:
> 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"
This is how my final matrix is looks like. Is there a way that I can filter only the unique rows based on their values not on row.names
. For example, 4th and 5th rows contains exactly the same values. Is it possible that my new matrix only contain one of them, not both.
来源:https://stackoverflow.com/questions/32074399/adding-a-new-column-in-a-matrix-in-r