2016-06-24 8 views
0

multcompView文字と要約データを連結して行列に入れようとしています。 for loopを使用して個々の要約マトリックスセルを実行し、これらをそれぞれの文字と連結します。私はほとんどそこにいますが、私の行列は元のデータと貼り付けられたデータの両方を出力します(下記参照)。どこ文字列行列を文字列ベクトルで行単位で貼り付け

for (i in 1:nrow(X1)) 
    tableRow = matrix(c(tableRow,paste(tableRow[i],letters$Letters[i],sep = "")),nrow = 1) 

機能 X1は私の集計表で、tableRowX1の最初の行で、 lettersは私が連結する文字が含まれています。

戻り値:

[1,] "5.53 ± 0.77" "6.72 ± 1.18" "5.12 ± 0.44" 
"5.24 ± 0.41" "5.53 ± 0.77a" "6.72 ± 1.18a" "5.12 ± 0.44a" "5.24 ± 0.41a" 

所望の出力:

[1,] "5.53 ± 0.77a" "6.72 ± 1.18a" "5.12 ± 0.44a" "5.24 ± 0.41a" 
+0

は、データを追加することができます。質問を乱雑にしたくなかった! –

+0

@ ZheyuanLiいいえ、多くの列が、私は最初の行に最初に取り組むことを試みると思った。 –

+0

良いアイデアだけど葉巻はない。 :)異なる列が異なる文字と連結されなければならないので、行列ごとに行を作成しています。あなたの提案はすべての行に文字を追加するだけでなく、元の連結されていないデータの厄介な最初の行が残っています! –

答えて

1

これは、すべての作業を行います:あなたのデータのために

## example matrix 
set.seed(0); X <- round(matrix(runif(12), nrow = 4, ncol = 3), 2) 

#  [,1] [,2] [,3] 
# [1,] 0.90 0.91 0.66 
# [2,] 0.27 0.20 0.63 
# [3,] 0.37 0.90 0.06 
# [4,] 0.57 0.94 0.21 

matrix(paste0(X, letters[1:4]), nrow = nrow(X)) 

#  [,1] [,2] [,3] 
# [1,] "0.9a" "0.91a" "0.66a" 
# [2,] "0.27b" "0.2b" "0.63b" 
# [3,] "0.37c" "0.9c" "0.06c" 
# [4,] "0.57d" "0.94d" "0.21d" 

を、あなたが行うことができます:

matrix(paste0(X1, letters$Letters), nrow = nrow(X1)) 

備考1

私の例では、ここではいくつかの欠点があります。私の例であるXは数字ですが、あなたはすでに文字マトリックスとしてX1を持っています。 paste0()を実行する場合、数値0.90"0.9"になります(as.character(0.90)"0.9"となるため)。あなたのデータにはそのような動作はありません。

備考2

ああ、私は実際にそのような行動を回避するための方法を見つけます。

X <- format(X) 

#  [,1] [,2] [,3] 
# [1,] "0.90" "0.91" "0.66" 
# [2,] "0.27" "0.20" "0.63" 
# [3,] "0.37" "0.90" "0.06" 
# [4,] "0.57" "0.94" "0.21" 

はその後 paste0()がOKであること:必要に応じて

#  [,1] [,2] [,3] 
# [1,] "0.90a" "0.91a" "0.66a" 
# [2,] "0.27b" "0.20b" "0.63b" 
# [3,] "0.37c" "0.90c" "0.06c" 
# [4,] "0.57d" "0.94d" "0.21d" 
+0

それは働いた!素晴らしい!どうもありがとうございます。私の最終行は次のようになります: 最後の行は次のようになります: 'for(i in 1:nrow(X1)) tableRow = matrix(paste0(X1 [、2]、letters $ Letters [i] )、nrow = 1) ' –

+0

あなたは正しいです、ありがとう。これは、おそらくこの時点までのすべてのステップが必要なためです。私はそれがひどい混乱になることをすべて貼り付けたと思った。しかし、私はまたforループが問題を引き起こしていると思って、誰かがそれを拾うかもしれません。 –

関連する問題