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 回答