0

私の質問には答えがあると確信していますが、機能するものを見つけることができないようで、Rにまったく慣れていないので、冗長性をお詫びします!

だから私は巨大なデータセットを持っています - 35の変数を持つ17Kのobs。それは私がインポートしてas.matrixで強制したtxtファイルでした。1 列目には文字値があり、残りの 34 列には数値があります。

構造 -

>str(data_m)
 chr [1:17933, 1:35] "RAB12" "TRIM52" "C1orf86" "PLAC9" "MORN3" "LOC643783" "LOC389541" "OAZ2" ...
 - attr(*, "dimnames")=List of 2
  ..$ : NULL
  ..$ : chr [1:35] "Name" "X118" "X12" "X21" ...

これで、id と性別の 2 つの列を持つ別の小さな長い形式のデータセットがあります。

> str(data_maleids)
'data.frame':   24 obs. of  2 variables:
 $ id    : Factor w/ 34 levels "X118","X12","X21",..: 8 23 9 19 10 7 5 4 2 30 ...
 $ gender: Factor w/ 2 levels "female","male": 2 2 2 2 2 2 2 2 2 2 ...`

例えば。-

    row.names   id  gender
1   1           X37 male
2   2           X64 male

私がやりたいのは、2 番目のデータセットに存在する ID (X37、X64 など) のみの 1 番目のデータセットをサブセット化することだけです。

より大きなデータセットを転置しようとしましたが、列名に関して問題が発生し、これを回避できないようです。

4

1 に答える 1

2

最初のコメントは、「最初の列には文字値があり、残りの 34 列には数値があります」というステートメントに関するものです。data_mは行列なので、すべての列は同じ型です。この場合はキャラクター。の出力から確認できますstr()。R の行列を、複数の列に配置されたベクトルと考えてください。

次にdata.table、このタスクにはパッケージを使用することをお勧めします (まだ持っていない場合はインストールする必要があります)。構文のスケッチは次のようになります。

  1. データを読み込みます。 パッケージには、テキスト ファイルからデータを オブジェクトとして読み込む便利な関数がありfread()ます 。data.tabledata.tabledata_m <- fread("file.name.txt")
  2. data_m変数ごとにキーを設定しますid:setkey(data_m, id)
  3. :から ID のベクトルを作成しdata_maleidsますids <- sort(unique(data_maleids$id))
  4. 必要なケースを選択してください: data_m[id %in% ids].
于 2013-08-19T06:06:19.700 に答える