各行のすべての列を文字列として連結し、それをRの別のデータフレームに書き込みます

ガラドリエル

データフレームの複数の要素を変更し、各行のすべての列を連結して、Rの新しいデータフレームに書き込もうとしています辞書を使用して複数の要素を変更するには、ここでRamnathのソリューションに従いまし

以下に私のサンプルコードを示します。

arr <- c(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 1073741824)

dict = list('1' = 'germline', '2' = 'somatic', '4' = 'inherited', '8' = 'paternal',
            '16' = 'maternal', '32' = 'de-novo', '64' = 'biparental', '128' = 'uniparental',
            '256' = 'not-tested', '512' = 'tested-inconclusive', '1024' = 'not-reported',
            '1073741824' = 'other')

a <- data.frame(t(combn(arr, 3)), stringsAsFactors = FALSE)
nr = nrow(a)
b <- as.data.frame(matrix(nrow = nr, ncol = 1))
row.names(b) <- rowSums(a)
a[] <- lapply(a, as.character)

for (j in 1:length(dict)) {
  a <- replace(a, a == names(dict[j]), dict[j])
}
for (i in 1:nr) {
  b[i, 1] <- paste(as.character(as.vector(a[i,])), collapse = ", ")
}

私の期待される出力は(例)です:

> b[1,1]
[1] germline, somatic, inherited

しかし、私はこれを取得します:

> b[1,1]
[1] "list(\"germline\"), list(\"somatic\"), list(\"inherited\")"

何が問題なのかわからなかったので、手伝っていただければ幸いです。

ThomasIsCoding

それa[i,]は、data.frameたとえばから見ることができることに注意してください

> str(a[1,])
'data.frame':   1 obs. of  3 variables:
 $ X1:List of 1
  ..$ : chr "germline"
 $ X2:List of 1
  ..$ : chr "somatic"
 $ X3:List of 1
  ..$ : chr "inherited"

1つの回避策は使用しています unlist(a[i,])

for (i in 1:nr) {
  b[i, 1] <- paste(unlist(a[i, ]), collapse = ", ")
}

そのような

> head(b)
                                V1
7     germline, somatic, inherited
11     germline, somatic, paternal
19     germline, somatic, maternal
35      germline, somatic, de-novo
67   germline, somatic, biparental
131 germline, somatic, uniparental

より簡単なオプションはdo.call+を使用することですpaste

b[, 1] <- do.call(paste, c(a, sep = ", "))

これは

> head(b)
                                V1
7     germline, somatic, inherited
11     germline, somatic, paternal
19     germline, somatic, maternal
35      germline, somatic, de-novo
67   germline, somatic, biparental
131 germline, somatic, uniparental

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Sparkデータフレームの各行を個別のファイルとして書き込みます

分類Dev

データフレーム内のすべての列を連結します

分類Dev

Rを使用して2つのデータフレームの共通列の値を照合し、対応するデータに書き込みます

分類Dev

別の列の値を修正するときに、データフレーム内の列の可能なすべての組み合わせを検索します

分類Dev

文字列をデータフレームの各行に連結し、それらに関数を適用しますか?

分類Dev

すべてのデータフレーム列を単一の列に連結します

分類Dev

R-文字列のGrepデータフレームであり、各行の検索結果に基づいて条件付きで新しい値を追加します

分類Dev

データフレームを列でグループ化し、文字列を別の列に連結します

分類Dev

文字列をインデックスとして2つのデータフレームを連結します

分類Dev

Spark-データフレーム内のすべての行を反復処理して、各行の複数の列を別の行と比較します

分類Dev

パンダのデータフレームのすべての列を連結します

分類Dev

共通の列に基づいて、データフレームを別の列と結合します

分類Dev

パンダは、dataframe_bのすべての列からdataframe_aの各列を減算し、結果を3番目のデータフレームに書き込みます

分類Dev

SparkデータフレームのgroupByの後の文字列を連結して置換します

分類Dev

データフレームのすべての列に対してforループを実行し、結果を個別のデータフレームまたは行列として返すにはどうすればよいですか?

分類Dev

ヘッダーと組み合わせた他のすべての列のPandasデータフレームに新しい辞書列を作成します

分類Dev

NaNを除くデータフレーム内のすべての列を連結します

分類Dev

pandasデータフレームの列リストを別の列の文字列と比較して更新します

分類Dev

データフレーム内の列を連結し、番号に基づいて並べ替えます

分類Dev

BS4を介して特定のXML値の追加を発行し、それらをデータフレームに書き込みます

分類Dev

フレームの1つの列と別の列の2つの列に基づいて2つのデータフレームを結合します

分類Dev

データフレーム列を使用して、groupbyの後に別の列の値を結合します

分類Dev

foreach行を使用して、データフレーム内の文字列をキャプチャして書き込みます

分類Dev

pandasデータフレームを取得してその列に書き込む関数をどのように構成する必要がありますか?

分類Dev

Rの別のデータフレームのメタデータ情報に基づいてデータフレーム列を結合します

分類Dev

文字列からすべての文字を削除し、データフレームにのみ数字を残す方法は?

分類Dev

各行をデータフレーム内のすべての行と比較し、結果を各行のリストに保存します

分類Dev

javaを使用して、sparkデータフレームのすべての列を連結する方法

分類Dev

特定のインデックスでのみデータ フレームの文字列行を連結します

Related 関連記事

  1. 1

    Sparkデータフレームの各行を個別のファイルとして書き込みます

  2. 2

    データフレーム内のすべての列を連結します

  3. 3

    Rを使用して2つのデータフレームの共通列の値を照合し、対応するデータに書き込みます

  4. 4

    別の列の値を修正するときに、データフレーム内の列の可能なすべての組み合わせを検索します

  5. 5

    文字列をデータフレームの各行に連結し、それらに関数を適用しますか?

  6. 6

    すべてのデータフレーム列を単一の列に連結します

  7. 7

    R-文字列のGrepデータフレームであり、各行の検索結果に基づいて条件付きで新しい値を追加します

  8. 8

    データフレームを列でグループ化し、文字列を別の列に連結します

  9. 9

    文字列をインデックスとして2つのデータフレームを連結します

  10. 10

    Spark-データフレーム内のすべての行を反復処理して、各行の複数の列を別の行と比較します

  11. 11

    パンダのデータフレームのすべての列を連結します

  12. 12

    共通の列に基づいて、データフレームを別の列と結合します

  13. 13

    パンダは、dataframe_bのすべての列からdataframe_aの各列を減算し、結果を3番目のデータフレームに書き込みます

  14. 14

    SparkデータフレームのgroupByの後の文字列を連結して置換します

  15. 15

    データフレームのすべての列に対してforループを実行し、結果を個別のデータフレームまたは行列として返すにはどうすればよいですか?

  16. 16

    ヘッダーと組み合わせた他のすべての列のPandasデータフレームに新しい辞書列を作成します

  17. 17

    NaNを除くデータフレーム内のすべての列を連結します

  18. 18

    pandasデータフレームの列リストを別の列の文字列と比較して更新します

  19. 19

    データフレーム内の列を連結し、番号に基づいて並べ替えます

  20. 20

    BS4を介して特定のXML値の追加を発行し、それらをデータフレームに書き込みます

  21. 21

    フレームの1つの列と別の列の2つの列に基づいて2つのデータフレームを結合します

  22. 22

    データフレーム列を使用して、groupbyの後に別の列の値を結合します

  23. 23

    foreach行を使用して、データフレーム内の文字列をキャプチャして書き込みます

  24. 24

    pandasデータフレームを取得してその列に書き込む関数をどのように構成する必要がありますか?

  25. 25

    Rの別のデータフレームのメタデータ情報に基づいてデータフレーム列を結合します

  26. 26

    文字列からすべての文字を削除し、データフレームにのみ数字を残す方法は?

  27. 27

    各行をデータフレーム内のすべての行と比較し、結果を各行のリストに保存します

  28. 28

    javaを使用して、sparkデータフレームのすべての列を連結する方法

  29. 29

    特定のインデックスでのみデータ フレームの文字列行を連結します

ホットタグ

アーカイブ