我正在根据行名和外部向量对数据帧的行进行排序。向量可以短于行数。
我尝试了匹配和顺序的不同组合,但他们不想将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
我希望数据帧的行名与向量的顺序相同,并且向量数据帧比向量短的不匹配行应放在末尾。
info
gacg cluster1
cgat cluster1
cggt cluster7
ccar cluster3
答案 0 :(得分:0)
您可以使用:
df[order(match(rownames(df), vector)), , drop = FALSE]