3

大きなCSVファイルの形式で提供される遺伝子検査の結果をグラフ化しようとしています。CSVの各x、y位置は数値スコアであり、そのほとんどはゼロです。ゼロ以外のデータにのみ関心があります。また、各XおよびYタイトルの名前には、データをさらにサブセット化するために使用したい追加情報があります。私がやりたかったのは、データを溶かし、値がゼロのすべての行を削除し、溶かしたデータを文字列分割して、キャストに使用できる追加の列を作成することです。ただし、溶けたデータを文字列分割しようとすると問題が発生します。コマンドといくつかのサンプルデータは次のとおりです。

test <- read.csv("~/Documents/Bioinformatics/Python_Scripts/test.csv", as.is=TRUE)
smalltest <- test[1:10, 1:4]
small.melt <- melt(smalltest)
head(smalltest)
head(small.melt)

これにより、以下のデータが得られます。

head(small.test)
BlastCompare Triostin_A_2 Triostin_A_1 Myxochelin_2 Myxochelin_1 
HA9WEQA05FUABT_497_TxR_K2            0            0      105          120 
G9VUOJT08JA64I_426_TxC_N3            0            0  0            0 
HA9WEQA06G2SFP_457_TxC_J4            0            0     0            0 
HA9WEQA05GCP8Q_506_TxR_J7          150          150    0            0 
HA9WEQA07HU6MW_421_TxR_P7            0            0    0            0 
G9VUOJT05FST3W_399_TxR_J4            0            0    255          240

頭(small.melt)

BlastCompare     variable value 
HA9WEQA05FUABT_497_TxR_K2Triostin_A_2     0  
G9VUOJT08JA64I_426_TxC_N3 Triostin_A_2     0 
HA9WEQA06G2SFP_457_TxC_J4 Triostin_A_2     0 
HA9WEQA05GCP8Q_506_TxR_J7 Triostin_A_2   150 
HA9WEQA07HU6MW_421_TxR_P7 Triostin_A_2     0 
G9VUOJT05FST3W_399_TxR_J4 Triostin_A_2     0

ただし、$ variable列で文字列分割を実行しようとすると、次の結果が得られます。

small.melt$name <- sapply(strsplit(small.melt$variable, "_") , "[", 1)
Error in strsplit(small.melt$variable, "_") : non-character argument

理由について何か考えはありますか?またはこれを回避する方法は?

ありがとうzachcp

4

1 に答える 1

4

問題は、それsmall.melt$variableがクラスファクターであるのに対し、最初の引数として文字ベクトルをstrsplit()期待していることです。(それは、上と下の簡略化された例で返されるエラーメッセージでそのようにほとんどあなたに伝えます):

f <- as.factor(c("a_b", "a_c"))
strsplit(f, "_")
Error in strsplit(f, "_") : non-character argument

strsplit()幸せにするために、単に因子を文字ベクトルに変換するために使用しas.character()ます。

sapply(strsplit(as.character(small.melt$variable), "_") , "[", 1)
#  [1] "Triostin"   "Triostin"   "Triostin"   "Triostin"   "Triostin"  
#  [6] "Triostin"   "Triostin"   "Triostin"   "Triostin"   "Triostin"  
# [11] "Triostin"   "Triostin"   "Myxochelin" "Myxochelin" "Myxochelin"
# [16] "Myxochelin" "Myxochelin" "Myxochelin" "Myxochelin" "Myxochelin"
# [21] "Myxochelin" "Myxochelin" "Myxochelin" "Myxochelin"
于 2011-12-31T00:40:59.050 に答える