基于单独的向量对数据帧的rownames进行排序

问题描述 投票:0回答:1

我根据我的行名和外部向量来排序数据帧的行。矢量可以比行数短。

我尝试了不同的匹配和顺序组合,但他们不想将rownames(df)作为参数,或者它创建了一个因子向量

df <- data.frame(info = c("cluster1","cluster7", "cluster1", "cluster3"),row.names = c("gacg","cggt","cgat", "ccat"))

vector <- c("gacg","cgat","cggt")

       info
gacg   cluster1
cggt   cluster7
cgat   cluster1
ccar   cluster3

我试过这个解决方案的变体:

df2<-df[order(match(df$rownames,vector)),] #produces some type of vector of factors

我想要一个与rownames一起排序的数据帧,其顺序与向量相同,并且矢量数据帧比向量短的行不匹配应该放在最后。

       info
gacg   cluster1
cgat   cluster1
cggt   cluster7
ccar   cluster3
r sorting dataframe match
1个回答
0
投票

您可以使用 :

df[order(match(rownames(df), vector)), , drop = FALSE]
© www.soinside.com 2019 - 2024. All rights reserved.