2

以下のようなデータフレームを持っています。RL で利用可能な領域に基づいて df を抽出する必要があります

    >avg_data
    region  SN      value
    beta    1       32
    alpha   2       44
    beta    3       55
    beta    4       60
    atp     5       22


    > RL
           V1
    1 beta
    2 alpha

そのデータフレームは、以下のようなベータ関連の情報を含む REGR[beta] のような配列にある必要があります

    region  SN      value
    beta    1       32
    beta    3       55
    beta    4       60

REGRαについても同様

    region  SN      value
    alpha   2       44

グラフをプロットするための引数として REGR を渡すことができるように。

    REGR <- data.frame()

    for (i in levels(RL$V1)){
     REGR[i,] <- avg_data[avg_data$region==i, ];
    }

上記のコードでいくつかの間違いをしました。私を修正してください..ありがとう

4

1 に答える 1

1

このsplit機能はあなたにとって興味深いものかもしれません。ヘルプページから分割しdivides the data in the vector x into the groups defined by fます。

したがって、データの場合、次のようになります。

> split(avg_data, avg_data$region)
$alpha
  region SN value
2  alpha  2    44

$atp
  region SN value
5    atp  5    22

$beta
  region SN value
1   beta  1    32
3   beta  3    55
4   beta  4    60

RL で発生しないレコードを除外したい場合は、おそらく、%in%関数を使用し[て抽出するための前処理ステップでそれを行います。

x <- avg_data[avg_data$region %in% RL$V1,]
#-----
  region SN value
1   beta  1    32
2  alpha  2    44
3   beta  3    55

splitあなたがatpを落としたいなら、それは私が食べたいものです。

プロットしたいだけの場合、上記のアプローチはやり過ぎかもしれません。sapply領域の各レベルを反復処理してプロットを作成するために使用する例を次に示します。

sapply(unique(x$region), function(z) 
  plot(x[x$region == z,"value"], main=z[1]))
于 2012-06-27T13:48:27.917 に答える