関数の実行中に1つのステップで列名を変更するにはどうすればよいですか?

MAPK

この関数を呼び出して、入力データフレームに対してこの関数を実行するとnewBamAD、次のようになりますoutput(以下を参照)mydfnewBamAD(mydf)列名bam.ADを新しい列名に変更して結果を保存したいたとえばbam.AD、次のようなデータフレームで関数を実行するときに、同じ手順で列名を新しい名前に変更したいとしますoutput<-newBamAD(mydf)

  output
       start           REF ALT bam.AD  
    1  "chr20:5363934" "C" "T" "59,29" 
    2  "chr5:8529759"  "G" "C" "28,41" 
    3  "chr14:9620689" "T" "G" "49,41" 

こんな感じにしたい

output


               start           REF ALT newname.AD  
            1  "chr20:5363934" "C" "T" "59,29" 
            2  "chr5:8529759"  "G" "C" "28,41" 
            3  "chr14:9620689" "T" "G" "49,41" 
bgoldst

マトリックスまたはdata.frameのどちらがあるかが重要です。行列はdimnames属性を使用して行名と列名を格納し、data.framesは属性namesrow.names属性を使用してそれぞれ列名と行名を格納します。

あなたの質問から、あなたはそこに行列があるように見えます。outputなぜなら、data.framesは通常、印刷時に文字要素を引用しませんが(実際に因子であるか真の文字ベクトルであるかに関係なく)、行列は引用します。

したがって、列名を変更するには、colnames<-()関数を使用する必要があります。(代わりにこのdimnames<-()関数を使用することもできますが、行名用と列名用の2つのコンポーネントを持つリストRHSが必要になります。行名をいじりたくないので、役に立ちません。)

関数呼び出しと同じ行でこれを実行する場合は、colnames<-()バックティックを使用して呼び出して、<-トークンをパーサーから保護する必要があります。したがって、次のようになります。

mydf <- data.frame(); ## dummy
newBamAD <- function(mydf) matrix(c('chr20:5363934','chr5:8529759','chr14:9620689','C','G','T','T','C','G','59,29','28,41','49,41'),3,dimnames=list(1:3,c('start','REF','ALT','bam.AD')));
newBamAD(mydf);
##   start           REF ALT bam.AD
## 1 "chr20:5363934" "C" "T" "59,29"
## 2 "chr5:8529759"  "G" "C" "28,41"
## 3 "chr14:9620689" "T" "G" "49,41"
`colnames<-`(newBamAD(mydf),c('start','REF','ALT','newname.AD'));
##   start           REF ALT newname.AD
## 1 "chr20:5363934" "C" "T" "59,29"
## 2 "chr5:8529759"  "G" "C" "28,41"
## 3 "chr14:9620689" "T" "G" "49,41"

これには、置換する列だけでなく、すべての列に名前を指定する必要があるという明らかな欠点がありますが、これをインラインで実行する場合は、それを回避する方法がわかりません。もちろん、最初に対象の列にインデックスを付けることもできますが、その後、残りの列が失われるため、機能しません。

もちろん、変数の戻り値をキャプチャし、インデックス割り当てを介して別のステートメントの列名を選択的に置き換えることを妨げるものは何もありません。これは、セミコロンを使用して同じ行で実行できます。

output <- newBamAD(mydf); colnames(output)[colnames(output)=='bam.AD'] <- 'newname.AD';
output;
##   start           REF ALT newname.AD
## 1 "chr20:5363934" "C" "T" "59,29"
## 2 "chr5:8529759"  "G" "C" "28,41"
## 3 "chr14:9620689" "T" "G" "49,41"

または、結果を行列ではなくdata.frameとして返すか、を介してdata.frameに強制変換as.data.frame()することもできます。その場合は、setNames()またはを使用できますnames<-()。これは、colnames<-()上記ソリューションと同じ考慮事項があります。

data.frameルートを使用する場合は、別の可能性があります。これは使用することですtransform()(またはwithin()、しかしtransform()、私たちの目的のためにより簡潔です)。実際、テストから、この関数をマトリックスに直接適用でき、data.frameに自動的に強制されます。これは便利です。したがって、次のようになります。

transform(newBamAD(mydf),newname.AD=bam.AD,bam.AD=NULL);
##           start REF ALT newname.AD
## 1 chr20:5363934   C   T      59,29
## 2  chr5:8529759   G   C      28,41
## 3 chr14:9620689   T   G      49,41

このアプローチの欠点は、列データをコピーする必要があるのに対し、以前のソリューションでは、名前付け属性のみに触れる必要があることです。

2ステートメントソリューションの使用をお勧めします。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

CSS変換プロパティの1つの関数のみを複数の関数で変更するにはどうすればよいですか?

分類Dev

チェックボックスの変更が行われる前に関数を実行するにはどうすればよいですか?

分類Dev

1つのスレッドでのみ同時に実行できる関数を作成するにはどうすればよいですか?

分類Dev

メインスレッドの実行中に制御プロパティを変更するにはどうすればよいですか?

分類Dev

1つの関数でCSSスタイルの入力と一部のテキストを変更するにはどうすればよいですか?

分類Dev

1つの関数でCSSスタイルの入力と一部のテキストを変更するにはどうすればよいですか?

分類Dev

matplotlibステップ関数で線種を変更するにはどうすればよいですか?

分類Dev

1つの関数で2つの非同期コードを実行してエスケープするにはどうすればよいですか?

分類Dev

プログラムの実行中にGTKのラベルを変更するにはどうすればよいですか。別のスレッドから

分類Dev

1つのJenkinsアイテムで複数のNUnitテストプロジェクトを実行するにはどうすればよいですか?

分類Dev

JavaScript関数でテキストの色を変更するにはどうすればよいですか?

分類Dev

月次プロットの関数で色を変更するにはどうすればよいですか?

分類Dev

Tensorboardで関数プロットの色を変更するにはどうすればよいですか?

分類Dev

toxで1つの関数のみをテストするにはどうすればよいですか?

分類Dev

Excelで列名を変更せずに1つの列の下に複数の列を組み合わせるにはどうすればよいですか?

分類Dev

Reactの1つの関数で2つの異なる変数を個別に変更するにはどうすればよいですか?

分類Dev

非同期関数の単体テストを実行するにはどうすればよいですか?

分類Dev

2つの変数に依存する関数の1つの変数に対して「for」ループを使用するにはどうすればよいですか?

分類Dev

ビデオIDを変数に割り当てて、1つのステップで再生するにはどうすればよいですか?

分類Dev

juliaで2つの関数を同時に実行するにはどうすればよいですか?

分類Dev

関数呼び出しを正しく使用するにはどうすればよいですか。2バッチのPythonスクリプトを実行します。1つは入力で、もう1つは出力です

分類Dev

opencart2.0でステップの名前を変更するにはどうすればよいですか

分類Dev

DataTableの列名を変更するにはどうすればよいですか?

分類Dev

FabricJSでテキストボックスの複数の行/場所のテキストを変更するにはどうすればよいですか?

分類Dev

指定された実行可能ファイルが実行されているかどうかをチェックするこのサブプロセス関数を、Python 2と3の両方で機能するように変更するにはどうすればよいですか?

分類Dev

コードの1つのブロックを保持して実行する関数を作成するにはどうすればよいですか?

分類Dev

Javaで1行に2つの変数の出力を表示するにはどうすればよいですか?

分類Dev

実行中のプロセスの数を制御するにはどうすればよいですか?

分類Dev

最初の関数が完全に完了した後でのみ、1つのJquery関数を実行するにはどうすればよいですか?

Related 関連記事

  1. 1

    CSS変換プロパティの1つの関数のみを複数の関数で変更するにはどうすればよいですか?

  2. 2

    チェックボックスの変更が行われる前に関数を実行するにはどうすればよいですか?

  3. 3

    1つのスレッドでのみ同時に実行できる関数を作成するにはどうすればよいですか?

  4. 4

    メインスレッドの実行中に制御プロパティを変更するにはどうすればよいですか?

  5. 5

    1つの関数でCSSスタイルの入力と一部のテキストを変更するにはどうすればよいですか?

  6. 6

    1つの関数でCSSスタイルの入力と一部のテキストを変更するにはどうすればよいですか?

  7. 7

    matplotlibステップ関数で線種を変更するにはどうすればよいですか?

  8. 8

    1つの関数で2つの非同期コードを実行してエスケープするにはどうすればよいですか?

  9. 9

    プログラムの実行中にGTKのラベルを変更するにはどうすればよいですか。別のスレッドから

  10. 10

    1つのJenkinsアイテムで複数のNUnitテストプロジェクトを実行するにはどうすればよいですか?

  11. 11

    JavaScript関数でテキストの色を変更するにはどうすればよいですか?

  12. 12

    月次プロットの関数で色を変更するにはどうすればよいですか?

  13. 13

    Tensorboardで関数プロットの色を変更するにはどうすればよいですか?

  14. 14

    toxで1つの関数のみをテストするにはどうすればよいですか?

  15. 15

    Excelで列名を変更せずに1つの列の下に複数の列を組み合わせるにはどうすればよいですか?

  16. 16

    Reactの1つの関数で2つの異なる変数を個別に変更するにはどうすればよいですか?

  17. 17

    非同期関数の単体テストを実行するにはどうすればよいですか?

  18. 18

    2つの変数に依存する関数の1つの変数に対して「for」ループを使用するにはどうすればよいですか?

  19. 19

    ビデオIDを変数に割り当てて、1つのステップで再生するにはどうすればよいですか?

  20. 20

    juliaで2つの関数を同時に実行するにはどうすればよいですか?

  21. 21

    関数呼び出しを正しく使用するにはどうすればよいですか。2バッチのPythonスクリプトを実行します。1つは入力で、もう1つは出力です

  22. 22

    opencart2.0でステップの名前を変更するにはどうすればよいですか

  23. 23

    DataTableの列名を変更するにはどうすればよいですか?

  24. 24

    FabricJSでテキストボックスの複数の行/場所のテキストを変更するにはどうすればよいですか?

  25. 25

    指定された実行可能ファイルが実行されているかどうかをチェックするこのサブプロセス関数を、Python 2と3の両方で機能するように変更するにはどうすればよいですか?

  26. 26

    コードの1つのブロックを保持して実行する関数を作成するにはどうすればよいですか?

  27. 27

    Javaで1行に2つの変数の出力を表示するにはどうすればよいですか?

  28. 28

    実行中のプロセスの数を制御するにはどうすればよいですか?

  29. 29

    最初の関数が完全に完了した後でのみ、1つのJquery関数を実行するにはどうすればよいですか?

ホットタグ

アーカイブ