我有标记数据(作为矩阵)标记,其中行名是个人的名称,同名是标记的名称。
marker <-
BBLM062 BBLM00182 BBLMOO587.......
ALEN294945 AA AA AT ....
ALEN29394 AT AA TT ....
ALEN49494888 AT AA TT ....
ALEN26424 AA AA AA ....
ALEN38764 AA AT AA ....
ALEN29794 AA AT AA ....
......
(282 x 1082)
我有另一个数据集pheno(也作为矩阵),其中行名是个人名称,colname是特征的名称
pheno <-
height weight colour ......
ALEN26494 162 3.5 3
ALEN49494888 154 3.8 5
ALEN494967 131 4.0 5
ALEN49678 152 3.9 7
ALEN294945 138 4.9 1
.......
(260 x 7)
“ pheno”中的所有个体也以“ marker”出现,但顺序不同。我有3个问题
提前感谢。
如何基于'pheno'的行名对'marker'进行子集设置>
使用
%in%
的子集
pheno[rownames(pheno) %in% rownames(marker), ]
从“标记”中排除不存在于“现象”中的个人:
添加以上内容:
pheno[!rownames(pheno) %in% rownames(marker), ]
如何基于“标记”对“表”中的个人重新排序
使用match
pheno[match(rownames(pheno), rownames(marker)),]
如何根据问题名称或'marker2'来对'marker'进行子集化,并像在问题2中一样对它们进行重新排序
如果marker2
中的所有列都出现在marker
中。
marker[, colnames(marker2)]
如果您分享可复制的示例,您将获得更多帮助。您可以使用dput( )
功能来帮助共享数据。