なぜメルト(reshape2)は列名を列の順序番号に置き換えるのですか?

RufM

SNPの違いの74x74ペアワイズ距離行列があり、最初の列と行は次のように分離株の番号に対応しています。

        26482RR 25638   26230   25689RR 25954
26482RR 0       8       0       6       0
25638   8       0       8       14      8
26230   0       8       0       6       0
25689RR 6       14      6       0       6
25954   0       8       0       6       0

M = structure(c(0L, 8L, 0L, 6L, 0L, 8L, 0L, 8L, 14L, 8L, 0L, 8L, 
0L, 6L, 0L, 6L, 14L, 6L, 0L, 6L, 0L, 8L, 0L, 6L, 0L), .Dim = c(5L, 
5L), .Dimnames = list(c("26482RR", "25638", "26230", "25689RR", 
"25954"), c("26482RR", "25638", "26230", "25689RR", "25954")))

このマトリックスを、次のように、分離株の各ペアのSNPの違いの表に変換したいと思います。

Col      Row    SNP differences
26482RR  25638   8
26482RR  26230   0
26482RR  25689RR 6
26482RR  25954   0
25638    26230   8
25638    25689RR 14
25638    25954   8
...

このデータをプロットし、他の行列と相関させるために。私はRの初心者なので、少し検索した後、次のコードを適用することにしました。

st1076 <- read.csv("st1076.csv", header=TRUE, sep=";")
m1 <- as.matrix(st1076)
m1 <- m1[upper.tri(m1)] <- NA
m1_melted <- reshape2:::melt.matrix(m1, na.rm = TRUE)
colnames(m1_melted) <- c("Col","Row","SNP differences")

ただし、このコードを使用すると、「Col」で各分離株の番号が発生順序(1、2、3、4 ...)で取得され、それぞれの分離株番号ではありません。

Col     Row      SNP differences
2       X26482RR  8
3       X26482RR  0
4       X26482RR  6

他の関連する質問で見たものから、を使用melt.matrixするとこの問題は解決するはずですが、うまくいきませんでした。

なぜこれが起こったのか理解するのを誰かが助けてくれますか?それを克服する方法について何か提案はありますか?

フランク

csvから読み取る以外は、コードは正しいと思います。csvはによってデータフレームとして解釈read.csvされるため、行列を取得するにはいくつかの処理が必要です。

DF = read.csv("st1076.csv", sep=";", row.names=1, check.names=FALSE)
M = as.matrix(DF)

res <- reshape2::melt(replace(M, upper.tri(M), NA), 
  varnames = c("Col", "Row"), 
  value.name = "SNP differences", 
  na.rm = TRUE
)

head(res)
      Col     Row SNP differences
1 26482RR 26482RR               0
2   25638 26482RR               8
3   26230 26482RR               0
4 25689RR 26482RR               6
5   25954 26482RR               0
6   25692 26482RR               2

参考までに、私はこのスレッドhttps://stat.ethz.ch/pipermail/r-help/2010-May/237835.htmlから始めて、ヘルプファイルを調べました。?read.csv

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

配列のreshape2 :: meltをtidyrに置き換える方法は?

分類Dev

(python) リストで番号を順序に置き換える方法

分類Dev

列の文字列を順序付けられた番号に置き換える方法は?

分類Dev

文字列の順序を置き換えるのをやめることは可能ですか?

分類Dev

順序が異なる文字ベクトルに基づいて、データフレーム内の列名を置き換えます

分類Dev

Javascript文字列が右から左の言語の語順を逆に置き換えるのはなぜですか?

分類Dev

リスト内のすべてのアイテムをPythonでの順序に置き換える方法は?

分類Dev

Pythonは、リストからのファイル内の出現を順序で置き換えます

分類Dev

Replaceメソッドを使用すると文字列が置き換えられないのはなぜですか?

分類Dev

「g」を追加して文字列をsedに置き換えることができるのはなぜですか?

分類Dev

UIImageView が 2 番目の UIImageView を置き換えるのはなぜですか?

分類Dev

envsubstが/を置き換えるのはなぜですか

分類Dev

TextRange.InsertSymbolメソッドがTextRangeのテキストを置き換えるのはなぜですか?

分類Dev

置換機能がリストを新しいものに置き換えないのはなぜですか?

分類Dev

チャレンジをwebauthnに置き換えるのはなぜですか?

分類Dev

AngularHttpClientが「\ n」を「↵」に置き換えるのはなぜですか

分類Dev

Django 1.9が設定とURLのタプル()をリスト[]に置き換えたのはなぜですか?

分類Dev

AppleScriptで「ターミナル」が「アプレット」に置き換えられるのはなぜですか?

分類Dev

配列インデックスがインクリメントしないのはなぜですか?値を置き換えるだけです

分類Dev

特定の文字列で\ nを置き換えることができないのはなぜですか?

分類Dev

`replace`メソッドを使用して整数をリストに置き換えることができないのはなぜですか-パンダ

分類Dev

シェルでmysqlコマンドを文字列に置き換えることができないのはなぜですか?

分類Dev

リストの順序で値を置き換えます

分類Dev

phpは、配列値を順序が狂っている別の配列値に置き換えます

分類Dev

Kotlinの文字列リソースファイルからの文字列であるのに、文字列が置き換えられないのはなぜですか?

分類Dev

日付を文字列に変換すると順序が変わるのはなぜですか?

分類Dev

xargsが2番目の{}を置き換えないのはなぜですか

分類Dev

3つの列「XXX」を番号に置き換えるにはどうすればよいですか?

分類Dev

Unicodeを含む文字列を置き換えることができないのはなぜですか?

Related 関連記事

  1. 1

    配列のreshape2 :: meltをtidyrに置き換える方法は?

  2. 2

    (python) リストで番号を順序に置き換える方法

  3. 3

    列の文字列を順序付けられた番号に置き換える方法は?

  4. 4

    文字列の順序を置き換えるのをやめることは可能ですか?

  5. 5

    順序が異なる文字ベクトルに基づいて、データフレーム内の列名を置き換えます

  6. 6

    Javascript文字列が右から左の言語の語順を逆に置き換えるのはなぜですか?

  7. 7

    リスト内のすべてのアイテムをPythonでの順序に置き換える方法は?

  8. 8

    Pythonは、リストからのファイル内の出現を順序で置き換えます

  9. 9

    Replaceメソッドを使用すると文字列が置き換えられないのはなぜですか?

  10. 10

    「g」を追加して文字列をsedに置き換えることができるのはなぜですか?

  11. 11

    UIImageView が 2 番目の UIImageView を置き換えるのはなぜですか?

  12. 12

    envsubstが/を置き換えるのはなぜですか

  13. 13

    TextRange.InsertSymbolメソッドがTextRangeのテキストを置き換えるのはなぜですか?

  14. 14

    置換機能がリストを新しいものに置き換えないのはなぜですか?

  15. 15

    チャレンジをwebauthnに置き換えるのはなぜですか?

  16. 16

    AngularHttpClientが「\ n」を「↵」に置き換えるのはなぜですか

  17. 17

    Django 1.9が設定とURLのタプル()をリスト[]に置き換えたのはなぜですか?

  18. 18

    AppleScriptで「ターミナル」が「アプレット」に置き換えられるのはなぜですか?

  19. 19

    配列インデックスがインクリメントしないのはなぜですか?値を置き換えるだけです

  20. 20

    特定の文字列で\ nを置き換えることができないのはなぜですか?

  21. 21

    `replace`メソッドを使用して整数をリストに置き換えることができないのはなぜですか-パンダ

  22. 22

    シェルでmysqlコマンドを文字列に置き換えることができないのはなぜですか?

  23. 23

    リストの順序で値を置き換えます

  24. 24

    phpは、配列値を順序が狂っている別の配列値に置き換えます

  25. 25

    Kotlinの文字列リソースファイルからの文字列であるのに、文字列が置き換えられないのはなぜですか?

  26. 26

    日付を文字列に変換すると順序が変わるのはなぜですか?

  27. 27

    xargsが2番目の{}を置き換えないのはなぜですか

  28. 28

    3つの列「XXX」を番号に置き換えるにはどうすればよいですか?

  29. 29

    Unicodeを含む文字列を置き換えることができないのはなぜですか?

ホットタグ

アーカイブ