我有基因表达数据和相应的临床数据。 但是两个数据的ID不匹配。
> clinical
ID Sex Sex_code Age
A13 female 0 65
A14 female 0 66
B15 male 1 53
B16 male 1 23
C15 male 1 60
> expression
Symbol A12 A13 A14 A15 A16 B15
A1BG 34197.7 45940.47 86621.41 11176.18 99574.66 129495.52
A1CF 895.0 3191.00 1428.00 1501.00 1939.00 876.00
A2BP1 0.0 5.00 0.00 0.00 0.00 0.00
A2LD1 575.3 200.11 238.85 3492.56 477.28 405.35
我想在两个数据帧中提取仅匹配ID(A13,A14,B15)的数据,如:
> clinical
ID Sex Sex_code Age
A13 female 0 65
A14 female 0 66
B15 male 1 53
> Expression
Symbol A13 A14 B15
A1BG 45940.47 86621.41 129495.52
A1CF 3191 1428 876
A2BP1 5 0 0
A2LD1 200.11 238.85 405.35
我可以找出两个数据中哪个列和行匹配的ID。
> clinical$ID %in% colnames(expression)
[1] TRUE TRUE TRUE FALSE FALSE
> colnames(expression) %in% clinical$ID
[1] FALSE FALSE TRUE TRUE FALSE FALSE TRUE
但我无法得到我想要的数据。 我试过......
A<-expression[, grep(unique(colnames(expression)) %in% clinical$ID, colnames(A))]
B<- which(rownames(clinical) %in% colnames(expression))
.
.
但失败了。 你能告诉我怎样才能得到它?