列名作为从dataframe打印特定列的参数

时间:2012-06-29 12:25:35

标签: r

我的数据框如下所示。我需要根据区域

从数据帧中提取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]

1 个答案:

答案 0 :(得分:2)

那是因为对象beta不存在。

试试这个:

newfun("beta", "AveElapsed")

传递包含字符串“beta”的字符对象,而不是名为beta的(不存在的)对象的内容。与@BenBarnes指出的“AveElapsed”相同。