2016-03-25 7 views
1

から情報を抽出私はこのコードを使用して、データセットから引き出されたデータの2列を有します列には場所に関連するコードが含まれていますが、そのコードの最も重要な部分は最初の4桁です6011 =町A列を比較し、それら

2番目の列は、この町で6種のうちどれが見つかったかを示す1〜6のコードです。

私はRがこれらの列を駆け抜けて、どんな種がどの町で起こったのか教えてくれる行列を作る方法を見つけたいと思っていましたか?だから私は

 |Species 1| Species 2| Species 3| 
    |Town| 
    |6011|  21|   23|  15| 
    |6013|  21|   23|  15| 

...テーブルは次のようになります推測するので、いくつか同時に数をカウントしながら、私は、最初の4桁で町の列を並べ替え、マトリックスを分類する必要がありますか町の各種。

これまで、substr関数を使用して、使用する行列から情報を抽出しましたが、これほど複雑な処理を行う方法がわかりません。

本当に助けていただきありがとうございます。 ありがとうございます。

答えて

1

次の方法で行うことができます。最初の列とあなたの行列のⅱ)2列目(?substrを参照))substr結果を私からdata.frameを作成

  1. を使用してください。

あなたの例ではので、ここで、再現性がないあなたのように見える行列、m、次のとおりです。楽でしょうmatrixではなくdata.frameを使用して

table(data.frame(town=substr(m[, 1], 1, 4), sp=m[, 2])) 

:次に

m <- matrix(c(
    "6011-0001", "1", 
    "6011-0002", "2", 
    "6011-0003", "2", 
    "6012-0001", "1", 
    "6012-0002", "2", 
    "6012-0003", "2", 
    "6012-0004", "4"), ncol=2, byrow=T) 

結果的な操作。

+1

ありがとう、それは完全に機能しました。 –

+0

あなたの質問が解決されたように見えるように+投票/了解を忘れないでください;-) –

+1

おっと、今行ったことがあります! –