我有一个包含 1 列的矩阵:
> Control_Title_name
vehicle_scan_id4
153 "CL2004060801AA"
155 "CL2004060801AA"
232 "EC2004102602AA"
Run Code Online (Sandbox Code Playgroud)
我想添加一个新列(名为“类”),如下所示:
> Control_Title_name
vehicle_scan_id4 Class
153 "CL2004060801AA" "Control"
155 "CL2004060801AA" "Control"
232 "EC2004102602AA" "Control"
Run Code Online (Sandbox Code Playgroud)
第一列(“vehicle_scan_id4”)的长度是可变的,所以我希望“Control”作为第二列(“Class”)中的一个值出现在每一行中。
> 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"
Run Code Online (Sandbox Code Playgroud)
这就是我的最终矩阵的样子。有没有一种方法可以只根据唯一行的值而不是row.names
. 例如,第 4 行和第 5 行包含完全相同的值。我的新矩阵可能只包含其中之一,而不是两者。
您可以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"
Run Code Online (Sandbox Code Playgroud)
回答你的第二个问题:
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"
Run Code Online (Sandbox Code Playgroud)