Rにcsvファイルから読み込んだデータフレームがあります。すべての列名の末尾に文字列( "EA")を追加するにはどうすればよいですか?単一の列で機能するコードを見つけましたが、何らかの理由で、ループが名前が変更されたフィールドを返しません。
データフレームは次のとおりです。
> str(mydataframe)
'data.frame': 8368 obs. of 4 variables:
$ gene: Factor w/ 8368 levels "A1BG","A1CF",..: 6949 4379 7111 4691 2331 4914 506 4985 7109 2072 ...
$ p : num 1.23e-09 1.05e-07 1.20e-07 2.53e-07 6.67e-07 ...
$ beta: num 2.86 2.52 2.51 1.72 2.34 ...
$ se : num 0.471 0.474 0.474 0.334 0.471 ...
コードは次のとおりです。
for(i in names(mydataframe)){
i_renamed <- paste(i, "EA", sep=".")
mydataframe$i_renamed <- mydataframe$i
mydataframe$i <- NULL
}
...しかしその後もオブジェクトは同じです
> str(mydataframe)
'data.frame': 8368 obs. of 4 variables:
$ gene: Factor w/ 8368 levels "A1BG","A1CF",..: 6949 4379 7111 4691 2331 4914 506 4985 7109 2072 ...
$ p : num 1.23e-09 1.05e-07 1.20e-07 2.53e-07 6.67e-07 ...
$ beta: num 2.86 2.52 2.51 1.72 2.34 ...
$ se : num 0.471 0.474 0.474 0.334 0.471 ...
望ましい結果は、すべての列の元の「gene」フィールドなどと同一のフィールド「gene.EA」です。
ありがとうございました
これを行うためにループを使用しようとするのを避けることができます。
names(mydataframe) <- paste0(names(mydataframe), '.EA')
または明示的に、次のことができます。
mydataframe <- setNames(mydataframe, paste0(names(mydataframe), '.EA'))
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加