行数が同じ(つまり691)で列数が異なる(つまり22-25)22個の行列があります。各マトリックスの同じ行、同じ列に対応する値を追加する必要があり、その結果、次元が 691*25 の 1 つのマトリックスになります。
fullanno1 has 691 rows & 25 columns:
>colnames(fullanno1)
[1] "coding-notMod3" "coding-synonymous" "coding-synonymous-near-splice"
[4] "intergenic" "intron" "missense"
[7] "missense-near-splice" "near-gene-3" "near-gene-5"
[10] "splice-3" "splice-5" "stop-gained"
[13] "stop-gained-near-splice" "stop-lost" "utr-3"
[16] "utr-5" "CTCF" "E"
[19] "None" "PF" "R"
[22] "T" "TSS" "WE"
[25] "coding-notMod3-near-splice"
fullanno2 has 691 rows and 22 columns:
>colnames(fullanno2)
[1] "coding-synonymous" "coding-synonymous-near-splice" "intergenic"
[4] "intron" "missense" "missense-near-splice"
[7] "near-gene-3" "near-gene-5" "splice-3"
[10] "splice-5" "stop-gained" "stop-lost"
[13] "utr-3" "utr-5" "CTCF"
[16] "E" "None" "PF"
[19] "R" "T" "TSS"
[22] "WE"
各行列は、数値を含む二重行列です。これらの 2 つの行列を追加して、次元が 691*25 の 3 つ目の行列を取得するにはどうすればよいですか。fullanno2 は 3 列短いため、これらの列の結果の行列には、最初の行列の値のみが含まれます。
私のアプローチ: colnames の setdiff を取得して、小さいマトリックスに存在しない列を取得し、0 を値として小さいマトリックスに cbind します。次に、2 つの行列を追加します。
> column.names<-setdiff(colnames(fullanno1),colnames(fullanno2))
[1] "coding-notMod3" "stop-gained-near-splice" "coding-notMod3-near-splice"
> column<-0
>cbind(fullanno2,column)
>colnames(fullanno2)[23]<-column.name[1]
>cbind(fullanno2,column)
>colnames(fullanno2)[24]<-column.name[2]
>cbind(fullanno2,column)
>colnames(fullanno2)[25]<-column.name[3]
しかし、これはすべての行列にとって面倒です。助言がありますか?