1

1 つの列と多くの行を持つ行列があり、各行は同じ長さの文字列です。次のコードを使用すると、次のようになります。

a = list("GTCA", "GACA")
library(plyr)
df <- ldply(a)

複数の列を持つ行列に変換したいのですが、列の数は文字列の長さと同じです。次のコードを実行すると、必要な結果が次のようになります。

a = list(c("G","T","C","A"), c("G","A","C","A"))
library(plyr)
df <- ldply(a)

Rでどうやってそれを行うことができますか? ありがとう!

4

3 に答える 3

5
do.call(rbind, sapply(a, strsplit, "") )
#-------
     [,1] [,2] [,3] [,4]
[1,] "G"  "T"  "C"  "A" 
[2,] "G"  "A"  "C"  "A" 

マトリックスが欲しいって言ってたよね?-functions でそれをしたい場合plyr、これは成功します:

 da <- laply(a, strsplit, split="")
 da
#---------    
     1   2   3   4  
[1,] "G" "T" "C" "A"
[2,] "G" "A" "C" "A"

データフレームが必要な場合はldply、同じ引数を使用してください。

于 2013-08-14T22:10:45.273 に答える
1

これはqdapパッケージからの回答ですが、qdapをまだ使用していない場合は、基本ソリューションが最適です。

library(qdap)
colSplit(unlist(a), "")

##   X1 X2 X3 X4
## 1  G  T  C  A
## 2  G  A  C  A
于 2013-08-14T22:33:09.220 に答える