0

数百行の ann という名前のデータフレームがあります。ほんの一部を示しました。

        Exp     Result
1   gmp_123     kip
2   gmp_345     kip
3   gmp_786     kip
4   gmp_564     min
5   gmp_347     min

基本的に、Exp 列から 2 つのベクトルを作成したいと考えています。1 つは Result == "kip" の Exp 値を持ち、もう 1 つは Result == "min" の Exp 値を持ちます。

したがって、最初のベクトルは gmp_123、gmp_345、gmp_786 の値を持ち、2 番目のベクトルは gmp_564、gmp_347 の値を持ちます。

次のようにサブセットメソッドを試しました:

ann.kiu <- subset(ann, select=Exp, subset(Result=="kip"))

しかし、私は得ています

「subset.default(Result=="kip") のエラー: 引数 "subset" がありません。デフォルトはありません」エラー

ありがとう

4

3 に答える 3

2

2 つのベクトルを作成するには:

kip <- subset(ann, subset=(Result == "kip"), select=Exp, drop=TRUE)
min <- subset(ann, subset=(Result == "min"), select=Exp, drop=TRUE)

しかし、実際にはデータ フレームの 2 つのサブセットを作成したいようです。その場合drop=TRUEは、上記の部分を省略してください。

于 2013-08-01T02:51:32.480 に答える
1

これは単純なタイプミスです: 等号を追加するだけです:

ann.kiu<-subset(ann, select=Exp, subset=(Result=="kip"))

追加するために編集:これは私のRセッションから直接貼り付けられます:

> Exp=c("gmp_123","gmp_345","gmp_786","gmp_564","gmp_374")
> Result=c(rep("kip",3),rep("min",2))
> ann=data.frame(Exp,Result)
> ann
      Exp Result
1 gmp_123    kip
2 gmp_345    kip
3 gmp_786    kip
4 gmp_564    min
5 gmp_374    min
> ann.kiu<-subset(ann, select=Exp, subset=(Result=="kip"))
> ann.kiu
      Exp
1 gmp_123
2 gmp_345
3 gmp_786

これはあなたが望んでいたものですか?

于 2013-08-01T02:53:05.623 に答える
0
kip <- subset(ann, Result == 'kip')[,"Exp"]
min <- subset(ann, Result == 'min')[,"Exp"]

上記を試してください。これは基本的に、kip または min のサブセットから対象の列にインデックスを付けます。

于 2013-09-11T02:54:38.407 に答える