chi*_*fan 1 sorting r match dataframe
我根据行名称和外部向量对数据框的行进行排序。向量可以比行数短。
我尝试了匹配和顺序的不同组合,但他们不想将 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
Run Code Online (Sandbox Code Playgroud)
我尝试了此解决方案的变体:
df2<-df[order(match(df$rownames,vector)),] #produces some type of vector of factors
Run Code Online (Sandbox Code Playgroud)
我想要一个数据框,其行名的顺序与向量的顺序相同,并且向量数据框比向量短的不匹配行应放置在末尾。
info
gacg cluster1
cgat cluster1
cggt cluster7
ccar cluster3
Run Code Online (Sandbox Code Playgroud)
您可以使用 :
df[order(match(rownames(df), vector)), , drop = FALSE]
Run Code Online (Sandbox Code Playgroud)