0

以下のようなデータフレームを持っています。領域に基づいてデータフレームから AveElapsed または Runtime を抽出する必要があります

    >avg_data
    region  SN      value   AveElapsed      Runtime
    beta    1       32      1372            943.668
    alpha   2       44      1408            966.495
    beta    3       55      1384            951.091
    beta    4       60      1390            954.929
    atp     5       22      1442            924.381

引数に基づいて、「AveElapsed」列または「Runtime」列を取得する必要があります。

以下のコマンドは正常に動作しています。しかし、どうすれば

    >avg_data[avg_data$region =="beta", "AveElapsed"]
    [1] 1372 1408 1384 1390 1442

しかし、関数を使用すると

    newfun(z, h)
    {
            avg_data[avg_data$region == z, h]
    }

この関数を呼び出すと

    newfun(beta, AveElapsed)

このようなエラーが発生しています..アドバイスしてください。

    Error in "[.data.frame"(avg_data, avg_data$region == z, h) :
             object "beta" not found

また、以下のように使ってみてもうまくいきません..

    M=AveElapsed
    avg_data[avg_data$region == "beta", M]
4

1 に答える 1

2

オブジェクトbetaが存在しないためです。

これを試して:

newfun("beta", "AveElapsed")

これは、beta と呼ばれる (存在しない) オブジェクトの内容ではなく、文字列 "beta" を含む文字オブジェクトを渡します。@BenBarnesが指摘しているように、「AveElapsed」についても同じことが言えます。

于 2012-06-29T12:28:19.437 に答える