1
は、私は次のようなDF1と呼ばれるデータフレームを持っているとしましょう:R - 別のデータフレームの値からデータフレームの列名を変更
Year S4 S1 S2 S3
1 2001 2 5 4 4
2 2002 5 2 2 0
3 2003 7 9 3 6
4 2004 9 6 8 7
5 2005 2 2 6 4
6 2006 10 5 7 5
と、このような別のデータフレームDF2:
ID Name
1 S1 John
2 S2 Sarah
3 S3 Kate
4 S4 Michael
Year Michael John Sarah Kate
1 2001 2 5 4 4
2 2002 5 2 2 0
3 2003 7 9 3 6
4 2004 9 6 8 7
5 2005 2 2 6 4
6 2006 10 5 7 5
:
は、私は次のようになり、1 DFので、DF2の対応する名前にDF1の関連する列名(すなわちない年)を変更したいです
cols <- names(df1)
cols <- cols[2:length(cols)]
newCols = df2[cols == df2$ID, "Name"]
names(df1) <- c("Year", newCols)
しかし、3行目は唯一のDF2でDF1の列と行が同じ順序になっている場合、彼らはされていない、動作しているようです:
は、私は、次の試してみました。 Rでこれを行う簡単な方法はありますか?
を使用することができます。 df2 $ nameは 'factor'型であるため、順序は維持されず、列には文字列ではなく整数値が割り当てられているようです。私はRが新しく、なぜこれが起こっているのかを実際には理解していませんが、列名はMichael、John、Sarah、Kateではなく、3,1,4,2に割り当てられています。 –
@RoryDevittこれは簡単な修正です。 'as.character(df2 $ ID))]'のように ' – akrun