我根据我的行名和外部向量来排序数据帧的行。矢量可以比行数短。
我尝试了不同的匹配和顺序组合,但他们不想将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
您可以使用 :
df[order(match(rownames(df), vector)), , drop = FALSE]