私の質問は、データ フレームにベクトルの順序を課しながら、文字ベクトルに基づいて列名の名前を変更する方法です。同様の投稿をすべて読みましたが、私の質問には回答しません。
私はそのようなデータフレームに取り組んでいます:
df<- data.frame(q3= c(1,4,6,1), q12=c(5,3,2,4), q11=c(1,2,3,4), q1=c(5,6,4,5),q5= c(1,4,6,1), q9=c(5,3,2,4), q10=c(1,2,3,4), q4=c(5,6,4,5),q2= c(1,4,6,1), q7=c(5,3,2,4), q6=c(1,2,3,4), q8=c(5,6,4,5))
理想的には、これらの列をインデックス、つまり q1、q3、q78、q99 に基づいて並べ替えたいと思います。しかし、これは難しそうです。
運が良ければ、並べ替えられた列名を含むベクトルもあります。
cols<- c("q1", "q2", "q3", "q4","q5", "q6", "q7", "q8","q9", "q10", "q11", "q12")
データ フレームの列名を に置き換えるのは、cols
順序が異なるため明らかに正しくありません。これまでに到達した場所は次のとおりです。
colnames(df) <- match(colnames(df), cols)
df <- df[,order(names(df))]
これは、後者が列にある位置に置き換えますが、colnames(df)
これらの数値はRによって整数として認識されないため、これらの数値を順序付けることはできません(Rは数値を変数の名前にすることを許可していないため)。そうすることができれば、df は cols と同じ順序になり、列名を置き換えるだけです。
どうすればこれを機能させることができますか?不可能な場合、代替手段は何ですか?
前もって感謝します。